Skip to main content

VariableMeta

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§