Struct Context

Source
pub struct Context<'a, 'types> {
    pub meta: &'a MetaData<'types>,
    pub data: &'a DataType<'types>,
    pub ident: &'a Ident,
    /* private fields */
}
Expand description

Context for the rendering process.

This contains different additional information and configuration that may be needed by a Renderer to render the actual code. It is also used to collect the rendered code and add it to the corresponding module.

Fields§

§meta: &'a MetaData<'types>

Meta information for the rendering process.

§data: &'a DataType<'types>

Data type that needs to be rendered.

§ident: &'a Ident

Identifier of the data type that needs to be rendered.

Implementations§

Source§

impl<'a, 'types> Context<'a, 'types>

Source

pub fn resolve_type_for_module(&self, ident: &IdentPath) -> TokenStream

Resolves the passed ident relative to the module of the current rendered type.

Source

pub fn add_usings<I>(&self, usings: I)
where I: IntoIterator, I::Item: ToString,

Add using directives to the module the of the current rendered type.

Source

pub fn module(&mut self) -> &mut Module

Returns a mutable reference to the module of the current rendered type.

Source

pub fn set<K>(&mut self, value: K::Type)
where K: ValueKey,

Set a value for the specified key K.

Source

pub fn get<K>(&self) -> K::Type
where K: ValueKey,

Get the value that was stored for the specified key K.

Panics if the key was not set before.

Source

pub fn unset<K>(&mut self)
where K: ValueKey,

Removes any values for the specified key K.

Methods from Deref<Target = MetaData<'types>>§

Source

pub fn check_renderer_flags(&self, flags: RendererFlags) -> bool

Whether the passed flags intersect with the renderer flags set in the configuration, or not.

Methods from Deref<Target = GeneratorMetaData<'types>>§

Source

pub fn check_generator_flags(&self, flags: GeneratorFlags) -> bool

Whether the passed flags intersect with the generator flags set in the configuration, or not.

Methods from Deref<Target = MetaTypes>§

Source

pub fn get_resolved<'a>( &'a self, ident: &'a Ident, ) -> Option<(&'a Ident, &'a MetaType)>

Get the identifier and the type of the passed ident with all single type references resolved.

Tries to find the type specified by the passed ident and resolve simple type definitions to the very base type. If the type could not be found None is returned.

Source

pub fn get_resolved_type<'a>(&'a self, ident: &'a Ident) -> Option<&'a MetaType>

Get the type of the passed ident with all single type references resolved.

Like get_resolved, but instead of returning the identifier and the type it will return only the resolved type.

Source

pub fn get_resolved_ident<'a>(&'a self, ident: &'a Ident) -> Option<&'a Ident>

Get the type ident of the passed ident with all single type references resolved.

Like get_resolved, but instead of returning the identifier and the type it will return only the identifier of the resolved type.

Source

pub fn get_variant(&self, ident: &Ident) -> Option<&MetaTypeVariant>

Return the MetaTypeVariant of corresponding type for the passed identifier.

This is a shorthand for self.get(ident).map(|ty| &type.variant).

Trait Implementations§

Source§

impl<'a, 'types> Debug for Context<'a, 'types>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'types> Deref for Context<'_, 'types>

Source§

type Target = MetaData<'types>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'a, 'types> !Freeze for Context<'a, 'types>

§

impl<'a, 'types> !RefUnwindSafe for Context<'a, 'types>

§

impl<'a, 'types> !Send for Context<'a, 'types>

§

impl<'a, 'types> !Sync for Context<'a, 'types>

§

impl<'a, 'types> Unpin for Context<'a, 'types>

§

impl<'a, 'types> !UnwindSafe for Context<'a, 'types>

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<X> AsAny for X
where X: 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Get a reference to the current object as Any.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Get a mutable reference to the current object as Any.
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> 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T