pub trait VariableMeta {
// Required methods
fn cache_variable_use(&mut self);
fn locals_read(&self) -> &VariableUses;
fn locals_written(&self) -> &VariableUses;
fn signals_read(&self) -> &VariableUses;
fn signals_written(&self) -> &VariableUses;
fn components_read(&self) -> &VariableUses;
fn components_written(&self) -> &VariableUses;
// Provided methods
fn variables_read<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a> { ... }
fn variables_written<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a> { ... }
fn variables_used<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a> { ... }
}Required Methods§
Sourcefn cache_variable_use(&mut self)
fn cache_variable_use(&mut self)
Compute variables read/written by the node. Must be called before either of the getters are called. To avoid interior mutability this needs to be called again whenever the node is mutated in a way that may invalidate the cached variable use.
Sourcefn locals_read(&self) -> &VariableUses
fn locals_read(&self) -> &VariableUses
Get the set of variables read by the IR node.
Sourcefn locals_written(&self) -> &VariableUses
fn locals_written(&self) -> &VariableUses
Get the set of variables written by the IR node.
Sourcefn signals_read(&self) -> &VariableUses
fn signals_read(&self) -> &VariableUses
Get the set of signals read by the IR node. Note that this does not include signals belonging to sub-components.
Sourcefn signals_written(&self) -> &VariableUses
fn signals_written(&self) -> &VariableUses
Get the set of signals written by the IR node. Note that this does not include signals belonging to sub-components.
Sourcefn components_read(&self) -> &VariableUses
fn components_read(&self) -> &VariableUses
Get the set of components read by the IR node. Note that a component read is typically a signal read for a signal exported by the component.
Sourcefn components_written(&self) -> &VariableUses
fn components_written(&self) -> &VariableUses
Get the set of components written by the IR node. Note that a component write may either be a component initialization, or a signal write for a signal exported by the component.
Provided Methods§
Sourcefn variables_read<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
fn variables_read<'a>( &'a self, ) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
Get the set of variables read by the IR node. Note that this is simply the union of all locals, signals, and components read by the node.
Sourcefn variables_written<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
fn variables_written<'a>( &'a self, ) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
Get the set of variables written by the IR node. Note that this is simply the union of all locals, signals, and components written.
Sourcefn variables_used<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
fn variables_used<'a>( &'a self, ) -> Box<dyn Iterator<Item = &'a VariableUse> + 'a>
Get the set of variables either read or written by the IR node.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".