pub struct ResolvedSpecTypes {
pub named_types: HashMap<String, LemmaType>,
pub inline_type_definitions: HashMap<Reference, LemmaType>,
pub unit_index: HashMap<String, (LemmaType, Option<TypeDef>)>,
}Expand description
Fully resolved types for a single spec After resolution, all imports are inlined - specs are independent
Fields§
§named_types: HashMap<String, LemmaType>Named types: type_name -> fully resolved type
inline_type_definitions: HashMap<Reference, LemmaType>Inline type definitions: fact reference -> fully resolved type
unit_index: HashMap<String, (LemmaType, Option<TypeDef>)>Unit index: unit_name -> (resolved type, defining AST node if user-defined) Built during resolution - if unit appears in multiple types, resolution fails. TypeDef is kept for conflict detection (identity, extends-check, source location). Primitives (percent, permille) have no TypeDef.
Trait Implementations§
Source§impl Clone for ResolvedSpecTypes
impl Clone for ResolvedSpecTypes
Source§fn clone(&self) -> ResolvedSpecTypes
fn clone(&self) -> ResolvedSpecTypes
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ResolvedSpecTypes
impl RefUnwindSafe for ResolvedSpecTypes
impl Send for ResolvedSpecTypes
impl Sync for ResolvedSpecTypes
impl Unpin for ResolvedSpecTypes
impl UnsafeUnpin for ResolvedSpecTypes
impl UnwindSafe for ResolvedSpecTypes
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more