pub trait Layout {
    type Target: Update + ?Sized;
    type KeyContainer: BatchContainer<PushItem = <Self::Target as Update>::Key>;
    type ValContainer: BatchContainer<PushItem = <Self::Target as Update>::Val>;
    type UpdContainer: for<'a> BatchContainer<PushItem = (<Self::Target as Update>::Time, <Self::Target as Update>::Diff), ReadItem<'a> = &'a (<Self::Target as Update>::Time, <Self::Target as Update>::Diff)>;
    type OffsetContainer: BatchContainer<PushItem = usize>;
}
Expand description

A type with opinions on how updates should be laid out.

Required Associated Types§

source

type Target: Update + ?Sized

The represented update.

source

type KeyContainer: BatchContainer<PushItem = <Self::Target as Update>::Key>

Container for update keys.

source

type ValContainer: BatchContainer<PushItem = <Self::Target as Update>::Val>

Container for update vals.

source

type UpdContainer: for<'a> BatchContainer<PushItem = (<Self::Target as Update>::Time, <Self::Target as Update>::Diff), ReadItem<'a> = &'a (<Self::Target as Update>::Time, <Self::Target as Update>::Diff)>

Container for update vals.

source

type OffsetContainer: BatchContainer<PushItem = usize>

Container for offsets.

Implementors§

source§

impl<K, V, T, D> Layout for Preferred<K, V, T, D>
where K: Ord + ToOwned + PreferredContainer + ?Sized, K::Owned: Ord + Clone + 'static, V: Ord + ToOwned + PreferredContainer + ?Sized + 'static, V::Owned: Ord + Clone, T: Ord + Lattice + Timestamp + Clone, D: Semigroup + Clone,

source§

impl<U: Update> Layout for TStack<U>
where U::Key: Columnation + 'static, U::Val: Columnation + 'static, U::Time: Columnation, U::Diff: Columnation,

source§

impl<U: Update> Layout for Vector<U>
where U::Key: 'static, U::Val: 'static,

§

type Target = U

§

type KeyContainer = Vec<<U as Update>::Key>

§

type ValContainer = Vec<<U as Update>::Val>

§

type UpdContainer = Vec<(<U as Update>::Time, <U as Update>::Diff)>

§

type OffsetContainer = OffsetList