pub struct Module {
pub root: Region,
}Expand description
A module in the hugr AST.
See table::Module for the table representation.
Fields§
§root: RegionThe root region of the module.
This must be a region of kind RegionKind::Module.
Implementations§
Source§impl Module
impl Module
Sourcepub fn resolve<'a>(&'a self, bump: &'a Bump) -> Result<Module<'a>, ResolveError>
pub fn resolve<'a>(&'a self, bump: &'a Bump) -> Result<Module<'a>, ResolveError>
Try to convert this module into the table representation.
This conversion resolves the names of variables, symbols and links
according to their scoping rules described in the scope module.
Symbols may be versioned either at their import/declaration/definition site or at their use site. Unversioned references will be resolved to the latest declared version if one is available.
Whenever a symbol is used but not defined in scope, an import node will be inserted into the module region and all references to that symbol will refer to the import node. This gives the opportunity to link the missing symbols.
Trait Implementations§
impl Eq for Module
impl StructuralPartialEq for Module
Auto Trait Implementations§
impl Freeze for Module
impl RefUnwindSafe for Module
impl Send for Module
impl Sync for Module
impl Unpin for Module
impl UnsafeUnpin for Module
impl UnwindSafe for Module
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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>
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>
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