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>
impl<'a, 'types> Context<'a, 'types>
Sourcepub fn resolve_type_for_module(&self, ident: &IdentPath) -> TokenStream
pub fn resolve_type_for_module(&self, ident: &IdentPath) -> TokenStream
Resolves the passed ident
relative to the module of the current rendered type.
Sourcepub fn add_usings<I>(&self, usings: I)
pub fn add_usings<I>(&self, usings: I)
Add using directives to the module the of the current rendered type.
Sourcepub fn module(&mut self) -> &mut Module
pub fn module(&mut self) -> &mut Module
Returns a mutable reference to the module of the current rendered type.
Sourcepub fn set<K>(&mut self, value: K::Type)where
K: ValueKey,
pub fn set<K>(&mut self, value: K::Type)where
K: ValueKey,
Set a value
for the specified key K
.
Methods from Deref<Target = MetaData<'types>>§
Sourcepub fn check_renderer_flags(&self, flags: RendererFlags) -> bool
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>>§
Sourcepub fn check_generator_flags(&self, flags: GeneratorFlags) -> bool
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>§
Sourcepub fn get_resolved<'a>(
&'a self,
ident: &'a Ident,
) -> Option<(&'a Ident, &'a MetaType)>
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.
Sourcepub fn get_resolved_type<'a>(&'a self, ident: &'a Ident) -> Option<&'a MetaType>
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.
Sourcepub fn get_resolved_ident<'a>(&'a self, ident: &'a Ident) -> Option<&'a Ident>
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.
Sourcepub fn get_variant(&self, ident: &Ident) -> Option<&MetaTypeVariant>
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)
.