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§

Source

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.

Source

fn locals_read(&self) -> &VariableUses

Get the set of variables read by the IR node.

Source

fn locals_written(&self) -> &VariableUses

Get the set of variables written by the IR node.

Source

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.

Source

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.

Source

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.

Source

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§

Source

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.

Source

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.

Source

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.

Implementors§