MetaTypes

Struct MetaTypes 

Source
pub struct MetaTypes {
    pub items: BTreeMap<Ident, MetaType>,
    pub modules: BTreeMap<NamespaceId, ModuleMeta>,
    pub schemas: BTreeMap<SchemaId, SchemaMeta>,
    /* private fields */
}
Expand description

Intermediate representation of all resolved type and module metadata.

This structure is created by the Interpreter from the parsed Schemas. It contains the full set of interpreted types, along with module-to-namespace mappings.

This type acts as the canonical source of truth for all derived type definitions, which can be passed to the Optimizer for post-processing, or used directly by the code Generator.

Fields§

§items: BTreeMap<Ident, MetaType>

Map of the different types.

§modules: BTreeMap<NamespaceId, ModuleMeta>

Map of the different namespaces.

§schemas: BTreeMap<SchemaId, SchemaMeta>

Map of the different schemas.

Implementations§

Source§

impl MetaTypes

Source

pub fn name_builder(&mut self) -> NameBuilder

Create a new NameBuilder instance, that can be used to build type named.

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).

Source

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

Return the MetaTypeVariant of corresponding type for the passed identifier.

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

Trait Implementations§

Source§

impl Debug for MetaTypes

Source§

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

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

impl Default for MetaTypes

Source§

fn default() -> MetaTypes

Returns the “default value” for a type. Read more

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<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<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,