Skip to main content

Spec

Struct Spec 

Source
pub struct Spec { /* private fields */ }
Expand description

A loaded OpenAPI document plus its source path (for diagnostics).

Implementations§

Source§

impl Spec

Source

pub fn load(path: &Path) -> Result<Self>

Load and parse an OpenAPI document from a YAML or JSON file, for a run that generates models only and filters nothing.

Source

pub fn load_for( path: &Path, server: bool, options: &OutputOptions, ) -> Result<Self>

Load and parse an OpenAPI document from a YAML or JSON file, for a run that generates the server when server is set and nothing else beside the models. Spec::load_with states the run in full.

Source

pub fn load_with( path: &Path, generate: &Generate, options: &OutputOptions, ) -> Result<Self>

Load and parse an OpenAPI document from a YAML or JSON file.

generate states what the run generates, and options holds the filters it applies. The inspection reads both: a server checks a query parameter’s constraints in the generated query struct, and a run that lowers operations reads their parameters and bodies by type.

Source

pub fn from_parts(inner: OpenAPI, source: PathBuf) -> Self

Construct a spec directly from an already-parsed document (test helper).

Source

pub fn source(&self) -> &Path

The source path the spec was loaded from.

Source

pub fn apply_filters(&mut self, opts: &OutputOptions)

Apply the configured operation and schema filters, mutating the spec in place before lowering (see crate::filter).

Source

pub fn schemas(&self) -> &IndexMap<String, ReferenceOr<Schema>>

The component schemas declared in the document, in document order.

Source

pub fn paths(&self) -> &Paths

The paths (operations) declared in the document, in document order.

Source

pub fn servers(&self) -> &[Server]

The top-level servers declared in the document, in document order.

Source

pub fn global_security(&self) -> Option<&[SecurityRequirement]>

The document’s global security requirements, if declared. An operation with no security of its own inherits these.

Source

pub fn security_schemes(&self) -> &IndexMap<String, ReferenceOr<SecurityScheme>>

The security schemes declared under components.securitySchemes, in document order.

Source

pub fn resolve_response(&self, reference: &str) -> Result<Resolved<Response>>

Resolve a #/components/responses/<name> (possibly cross-file) reference to an owned component response plus the file it came from, following reference chains within and across documents.

Source

pub fn resolve_parameter(&self, reference: &str) -> Result<Resolved<Parameter>>

Resolve a #/components/parameters/<name> (possibly cross-file) reference to an owned component parameter plus the file it came from, following reference chains within and across documents.

Source

pub fn resolve_request_body( &self, reference: &str, ) -> Result<Resolved<RequestBody>>

Resolve a #/components/requestBodies/<name> (possibly cross-file) reference to an owned component request body plus the file it came from, following reference chains within and across documents.

Source

pub fn resolve(&self, reference: &str) -> Result<&Schema>

Resolve a $ref string to the concrete schema it names, following chains of references within this document.

Source

pub fn resolve_schema( &self, origin: Option<&str>, reference: &str, ) -> Result<Schema>

Resolve a same-document schema $ref to an owned schema, against the main document when origin is None or a referenced document otherwise.

A cross-file (file#/...) inner schema ref is intentionally rejected: a schema type reference is emitted as a named external type through the import-mapping (see the lowering pass’s schema_ref_type), never read and inlined. This method only resolves refs that stay within one document’s own #/components/schemas.

Source

pub fn external_schema_name( &self, file: &str, name: &str, reference: &str, ) -> Result<String>

The name a schema in a referenced file takes in the crate the import-mapping points at.

The two runs read the same document, so an x-rust-name there reaches both. Without this the run that generates the models emits the name the key gives, the run that generates the operations emits the schema name, and the composed crate does not build.

A miss is an error. The name would otherwise reach the output and name a type the other crate never declares.

Two names in the referenced file that give one Rust name are an error too. The run that writes the models separates them with a type-name-suffix it takes from its own config. This run cannot see that config, so it emits the plain name and reaches whichever of the two schemas kept it. That builds, and it carries the wrong type.

A schema the direction pass splits is an error for the same reason. The other run emits two names there, and this one cannot tell which of the two an import-mapping reference means.

Trait Implementations§

Source§

impl Debug for Spec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Spec

§

impl !RefUnwindSafe for Spec

§

impl !Send for Spec

§

impl !Sync for Spec

§

impl Unpin for Spec

§

impl UnsafeUnpin for Spec

§

impl UnwindSafe for Spec

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.