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

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.

Get the set of variables read by the IR node.

Get the set of variables written by the IR node.

Get the set of signals read by the IR node. Note that this does not include signals belonging to sub-components.

Get the set of signals written by the IR node. Note that this does not include signals belonging to sub-components.

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.

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

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.

Get the set of variables written by the IR node. Note that this is simply the union of all locals, signals, and components written.

Get the set of variables either read or written by the IR node.

Implementors