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.