Trait circomspect_program_structure::intermediate_representation::variable_meta::VariableMeta
source · [−]pub trait VariableMeta {
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;
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.