pub trait Layout {
    type Target: Update + ?Sized;
    type KeyContainer: BatchContainer + PushInto<<Self::Target as Update>::Key>;
    type ValContainer: BatchContainer;
    type TimeContainer: BatchContainer<Owned = <Self::Target as Update>::Time> + PushInto<<Self::Target as Update>::Time>;
    type DiffContainer: BatchContainer<Owned = <Self::Target as Update>::Diff> + PushInto<<Self::Target as Update>::Diff>;
    type OffsetContainer: for<'a> BatchContainer<ReadItem<'a> = 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 + PushInto<<Self::Target as Update>::Key>

Container for update keys.

source

type ValContainer: BatchContainer

Container for update vals.

source

type TimeContainer: BatchContainer<Owned = <Self::Target as Update>::Time> + PushInto<<Self::Target as Update>::Time>

Container for times.

source

type DiffContainer: BatchContainer<Owned = <Self::Target as Update>::Diff> + PushInto<<Self::Target as Update>::Diff>

Container for diffs.

source

type OffsetContainer: for<'a> BatchContainer<ReadItem<'a> = 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, V::Owned: Ord + Clone + 'static, T: Ord + Clone + Lattice + Timestamp, D: Ord + Clone + Semigroup + 'static,

source§

impl<K, V, T, R> Layout for FlatLayout<K, V, T, R>
where K: Region + Push<<K as Region>::Owned> + for<'a> Push<<K as Region>::ReadItem<'a>> + 'static, V: Region + Push<<V as Region>::Owned> + for<'a> Push<<V as Region>::ReadItem<'a>> + 'static, T: Region + Push<<T as Region>::Owned> + for<'a> Push<<T as Region>::ReadItem<'a>> + 'static, R: Region + Push<<R as Region>::Owned> + for<'a> Push<<R as Region>::ReadItem<'a>> + 'static, K::Owned: Ord + Clone + 'static, V::Owned: Ord + Clone + 'static, T::Owned: Ord + Clone + Lattice + Timestamp + 'static, R::Owned: Ord + Semigroup + 'static, for<'a> K::ReadItem<'a>: Copy + Ord, for<'a> V::ReadItem<'a>: Copy + Ord, for<'a> T::ReadItem<'a>: Copy + Ord, for<'a> R::ReadItem<'a>: Copy + Ord,

source§

impl<U: Update> Layout for TStack<U>

source§

impl<U: Update> Layout for Vector<U>
where U::Diff: Ord,