[][src]Trait gf::support::iv::IvData

pub trait IvData<K: Clone + Integer>: Sized + Default {
    fn split(self, offset: K) -> (Self, Self);
fn merge(lhs: Self, rhs: Self) -> Self;
fn unite(&mut self, other: Self); }

A type that is associated with an interval and can be split, merged, and united.

Blanket implementations

A vector of Meet implementors implements IvData. It stores an element from the semilattice for every key in the interval and implements unite as ⊓. If you would prefer a Join semilattice instead with ⊔ for unite, use the Flip adapter.

Required methods

fn split(self, offset: K) -> (Self, Self)

Split this data into two.

fn merge(lhs: Self, rhs: Self) -> Self

Merge data for two adjacent intervals into one.

fn unite(&mut self, other: Self)

Update interval data with additional data presented for the same interval during a union operation.

Loading content...

Implementations on Foreign Types

impl<K: Clone + Integer> IvData<K> for ()[src]

impl<K, L> IvData<K> for Vec<L> where
    K: Clone + Integer + Into<usize>,
    L: Meet
[src]

Loading content...

Implementors

Loading content...