Rindle docs and package mapSkip to main content

StorageValue

Enum StorageValue 

Source
pub enum StorageValue {
    Take {
        size: u32,
        bound: Option<OwnedRow>,
    },
    Bound(OwnedRow),
    Cap {
        size: u32,
        pks: Vec<Box<str>>,
    },
    Reduce {
        count: i64,
        accs: Vec<ReduceAcc>,
    },
}
Expand description

The value stored in operator scratch state. A tight enum, not generic JSON: the only writers are Take and Cap (spec 10 §1.3), and their payloads are known. This (a) keeps serde_json out of the wasm client, (b) makes every value a flat, cheaply-clonable struct instead of a heap JSON tree, and (c) gives operators type-safe state instead of the JS storage as TakeStorage casts (take.ts:78).

No PartialEq. It carries OwnedRows (crate::value::OwnedValue deliberately has no PartialEq — you must choose compare_values vs values_equal), so comparison is spelled out where needed (tests compare via compare_values, mirroring graph::CollectedChange).

Borrowed and owned forms coincide for this enum (no &str fields — bound is already an OwnedRow, pks are Box<str>), so OwnedStorageValue is just an alias; it leaves room for a future borrowed set form (spec 10 §4.2).

Variants§

§

Take

take.ts TakeState: a count + an optional boundary row. bound is an OwnedRow because it outlives the cursor that produced it (foundations §3.3 — operator-buffered state).

Fields

§size: u32
§

Bound(OwnedRow)

take.ts MAX_BOUND_KEY slot: a bare boundary row.

§

Cap

cap.ts CapState: a count + the membership pk-set (each pk pre-serialized to a string exactly as JS serializePK, cap.ts:315).

Fields

§size: u32
§pks: Vec<Box<str>>
§

Reduce

op/reduce.rs accumulator (REDUCE-DESIGN.md §5). count is the running row count backing count(*) (birth/death is driven by it, NULLs included). accs holds one ReduceAcc per Sum/Avg aggregate in output-column order (empty for a plain count), so a Remove never re-reads the inputs.

Fields

§count: i64

Trait Implementations§

Source§

impl Clone for StorageValue

Source§

fn clone(&self) -> StorageValue

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StorageValue

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.