[][src]Trait declarative_dataflow::binding::AsBinding

pub trait AsBinding {
    fn variables(&self) -> Vec<u32>;
fn binds(&self, variable: u32) -> Option<usize>;
fn required_to_extend(
        &self,
        prefix: &dyn AsBinding,
        target: u32
    ) -> Option<Option<u32>>;
fn ready_to_extend(&self, prefix: &dyn AsBinding) -> Option<u32>; fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool { ... } }

A thing that can act as a binding of values to variables.

Required methods

fn variables(&self) -> Vec<u32>

All variables bound by this binding.

fn binds(&self, variable: u32) -> Option<usize>

Iff the binding has opinions about the given variable, this will return the offset, otherwise None.

fn required_to_extend(
    &self,
    prefix: &dyn AsBinding,
    target: u32
) -> Option<Option<u32>>

Returns an optional variable which must be bound by the prefix in order for this binding to extend the prefix. If None, then this binding can never be used to extend the prefix to the specified variable (e.g. because it doesn't even bind it).

fn ready_to_extend(&self, prefix: &dyn AsBinding) -> Option<u32>

Returns an optional variable by which this binding could extend the given prefix.

Loading content...

Provided methods

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool

Returns true iff the binding is ready to participate in the extension of a set of prefix variables to a new variable.

Loading content...

Implementations on Foreign Types

impl AsBinding for Vec<u32>[src]

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool[src]

Loading content...

Implementors

impl AsBinding for Binding[src]

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool[src]

impl AsBinding for AntijoinBinding[src]

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool[src]

impl AsBinding for AttributeBinding[src]

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool[src]

impl AsBinding for BinaryPredicateBinding[src]

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool[src]

impl AsBinding for ConstantBinding[src]

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool[src]

impl<'a, G: Scope> AsBinding for CollectionRelation<'a, G> where
    G::Timestamp: Lattice + Data
[src]

fn can_extend(&self, prefix: &dyn AsBinding, target: u32) -> bool[src]

Loading content...