Skip to main content

LayoutExt

Trait LayoutExt 

Source
pub trait LayoutExt: WithLayout<Layout: Layout<KeyContainer = Self::KeyContainer, ValContainer = Self::ValContainer, TimeContainer = Self::TimeContainer, DiffContainer = Self::DiffContainer>> {
    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>>;
    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_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 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>>

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_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".

Implementors§