Skip to main content

CodeGenerator

Struct CodeGenerator 

Source
pub struct CodeGenerator { /* private fields */ }

Implementations§

Source§

impl CodeGenerator

Source

pub fn generate_http_client_struct(&self) -> TokenStream

Generate the HTTP client struct with middleware support

Source

pub fn generate_operation_methods( &self, analysis: &SchemaAnalysis, ) -> TokenStream

Generate HTTP operation methods for the client.

Emits per-operation typed error enums (one variant per declared non-2xx response with a body schema) BEFORE the impl HttpClient block so the generated method signatures can reference them. This low-level helper also emits operation-owned helpers such as the reserved path encoder. intentionally emits every analyzed operation; use Self::generate_http_client or Self::generate_all to honor the configured [client].operations scope and additional derive policy. Generate standalone HTTP methods. Declared SSE alternatives return raw byte streams; generate_all bundles the optional parsed SSE runtime.

Source§

impl CodeGenerator

Source

pub fn new(config: GeneratorConfig) -> Self

Source

pub fn with_source_provenance(self, source: impl Into<String>) -> Self

Attach a sanitized source label to generated module headers.

Source

pub fn config(&self) -> &GeneratorConfig

Get reference to the generator configuration

Source

pub fn generate_all( &self, analysis: &mut SchemaAnalysis, ) -> Result<GenerationResult>

Generate all files for the API

Source

pub fn generate_all_with_bindings( &self, analysis: &mut SchemaAnalysis, ) -> Result<GenerationWithBindings>

Generate Rust output and versioned metadata from the same emission ASTs. Metadata paths are relative to the module chosen by the consumer.

Source

pub fn generate(&self, analysis: &mut SchemaAnalysis) -> Result<String>

Generate just the types (legacy single-file interface)

Source

pub fn generate_http_client(&self, analysis: &SchemaAnalysis) -> Result<String>

Generate HTTP client code for regular (non-streaming) requests.

This standalone entry point honors [client].operations but does not validate unrelated server or streaming scopes. Use Self::generate_all when generating the complete configured output set. SSE variants use raw byte streams in this standalone file. The bundled entry point emits parsed SSE variants together with their sse.rs runtime.

Source

pub fn output_artifacts( &self, result: &GenerationResult, ) -> BTreeMap<PathBuf, String>

Helper method to write all generated files to disk

Source

pub fn write_files(&self, result: &GenerationResult) -> Result<()>

Write a generation result using the same rendered artifact set exposed to dry-run and check-mode callers.

Source

pub fn is_rust_keyword(s: &str) -> bool

Check if a string is a Rust keyword that needs raw identifier treatment

Source

pub fn to_field_ident(name: &str) -> Ident

Create a proc_macro2::Ident from a field name, handling r# raw identifiers

Source§

impl CodeGenerator

Source

pub fn generate_registry(&self, analysis: &SchemaAnalysis) -> Result<String>

Generate the registry.rs file content

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more