Trait LayoutExt

Source
pub trait LayoutExt: WithLayout<Layout: Layout<KeyContainer = Self::KeyContainer, ValContainer = Self::ValContainer, TimeContainer = Self::TimeContainer, DiffContainer = Self::DiffContainer>> {
    type KeyOwn;
    type Key<'a>: Copy + Ord;
    type ValOwn: Clone + Ord;
    type Val<'a>: Copy + Ord;
    type Time: Lattice + Timestamp;
    type TimeGat<'a>: Copy + Ord;
    type Diff: Semigroup + 'static;
    type DiffGat<'a>: Copy + Ord;
    type KeyContainer: for<'a> BatchContainer<ReadItem<'a> = Self::Key<'a>, Owned = Self::KeyOwn>;
    type ValContainer: for<'a> BatchContainer<ReadItem<'a> = Self::Val<'a>, Owned = Self::ValOwn>;
    type TimeContainer: for<'a> BatchContainer<ReadItem<'a> = Self::TimeGat<'a>, Owned = Self::Time>;
    type DiffContainer: for<'a> BatchContainer<ReadItem<'a> = Self::DiffGat<'a>, Owned = Self::Diff>;

    // Required methods
    fn owned_key(key: Self::Key<'_>) -> Self::KeyOwn;
    fn owned_val(val: Self::Val<'_>) -> Self::ValOwn;
    fn owned_time(time: Self::TimeGat<'_>) -> Self::Time;
    fn owned_diff(diff: Self::DiffGat<'_>) -> Self::Diff;
    fn clone_time_onto(time: Self::TimeGat<'_>, onto: &mut Self::Time);
}
Expand description

Automatically implemented trait for types with layouts.

Required Associated Types§

Source

type KeyOwn

Alias for an owned key of a layout.

Source

type Key<'a>: Copy + Ord

Alias for an borrowed key of a layout.

Source

type ValOwn: Clone + Ord

Alias for an owned val of a layout.

Source

type Val<'a>: Copy + Ord

Alias for an borrowed val of a layout.

Source

type Time: Lattice + Timestamp

Alias for an owned time of a layout.

Source

type TimeGat<'a>: Copy + Ord

Alias for an borrowed time of a layout.

Source

type Diff: Semigroup + 'static

Alias for an owned diff of a layout.

Source

type DiffGat<'a>: Copy + Ord

Alias for an borrowed diff of a layout.

Source

type KeyContainer: for<'a> BatchContainer<ReadItem<'a> = Self::Key<'a>, Owned = Self::KeyOwn>

Container for update keys.

Source

type ValContainer: for<'a> BatchContainer<ReadItem<'a> = Self::Val<'a>, Owned = Self::ValOwn>

Container for update vals.

Source

type TimeContainer: for<'a> BatchContainer<ReadItem<'a> = Self::TimeGat<'a>, Owned = Self::Time>

Container for times.

Source

type DiffContainer: for<'a> BatchContainer<ReadItem<'a> = Self::DiffGat<'a>, Owned = Self::Diff>

Container for diffs.

Required Methods§

Source

fn owned_key(key: Self::Key<'_>) -> Self::KeyOwn

Construct an owned key from a reference.

Source

fn owned_val(val: Self::Val<'_>) -> Self::ValOwn

Construct an owned val from a reference.

Source

fn owned_time(time: Self::TimeGat<'_>) -> Self::Time

Construct an owned time from a reference.

Source

fn owned_diff(diff: Self::DiffGat<'_>) -> Self::Diff

Construct an owned diff from a reference.

Source

fn clone_time_onto(time: Self::TimeGat<'_>, onto: &mut Self::Time)

Clones a reference time onto an owned time.

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§