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)>;
}
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.

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,