RelationLeaper

Trait RelationLeaper 

Source
pub trait RelationLeaper<Key: Ord, Val: Ord> {
    // Required methods
    fn extend_with<'leap, Tuple: Ord, Func: Fn(&Tuple) -> Key>(
        &'leap self,
        key_func: Func,
    ) -> ExtendWith<'leap, Key, Val, Tuple, Func>
       where Key: 'leap,
             Val: 'leap;
    fn extend_anti<'leap, Tuple: Ord, Func: Fn(&Tuple) -> Key>(
        &'leap self,
        key_func: Func,
    ) -> ExtendAnti<'leap, Key, Val, Tuple, Func>
       where Key: 'leap,
             Val: 'leap;
    fn filter_with<'leap, Tuple: Ord, Func: Fn(&Tuple) -> (Key, Val)>(
        &'leap self,
        key_func: Func,
    ) -> FilterWith<'leap, Key, Val, Tuple, Func>
       where Key: 'leap,
             Val: 'leap;
    fn filter_anti<'leap, Tuple: Ord, Func: Fn(&Tuple) -> (Key, Val)>(
        &'leap self,
        key_func: Func,
    ) -> FilterAnti<'leap, Key, Val, Tuple, Func>
       where Key: 'leap,
             Val: 'leap;
}
Expand description

Extension method for relations.

Required Methods§

Source

fn extend_with<'leap, Tuple: Ord, Func: Fn(&Tuple) -> Key>( &'leap self, key_func: Func, ) -> ExtendWith<'leap, Key, Val, Tuple, Func>
where Key: 'leap, Val: 'leap,

Extend with Val using the elements of the relation.

Source

fn extend_anti<'leap, Tuple: Ord, Func: Fn(&Tuple) -> Key>( &'leap self, key_func: Func, ) -> ExtendAnti<'leap, Key, Val, Tuple, Func>
where Key: 'leap, Val: 'leap,

Extend with Val using the complement of the relation.

Source

fn filter_with<'leap, Tuple: Ord, Func: Fn(&Tuple) -> (Key, Val)>( &'leap self, key_func: Func, ) -> FilterWith<'leap, Key, Val, Tuple, Func>
where Key: 'leap, Val: 'leap,

Extend with any value if tuple is present in relation.

Source

fn filter_anti<'leap, Tuple: Ord, Func: Fn(&Tuple) -> (Key, Val)>( &'leap self, key_func: Func, ) -> FilterAnti<'leap, Key, Val, Tuple, Func>
where Key: 'leap, Val: 'leap,

Extend with any value if tuple is absent from relation.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<Key: Ord, Val: Ord> RelationLeaper<Key, Val> for Relation<(Key, Val)>