pub struct Module {
pub root: Region,
}
Expand description
A module in the hugr AST.
See table::Module
for the table representation.
Fields§
§root: Region
The 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.
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 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
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<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
Compare self to
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>
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