Skip to main content

ColumnStore

Struct ColumnStore 

Source
pub struct ColumnStore { /* private fields */ }
Expand description

Per-field typed columns. Homogeneous Int/Float/Bool/Str use a dense vec plus presence bitmap; mixed-type fields and lists spill to a HashMap (slow path).

On-disk (V6) shape is still HashMap<String, HashMap<u32, Value>>.

Implementations§

Source§

impl ColumnStore

Source

pub fn new() -> Self

Source

pub fn set(&mut self, node: u32, field: &str, value: Value)

Source

pub fn get(&self, node: u32, field: &str) -> Option<&Value>

Source

pub fn column(&self, field: &str) -> ColumnHandle<'_>

Return a pre-resolved column handle for field.

Hashes the field name once so that repeated ColumnHandle::get calls pay only the inner node-id lookup cost, not the outer string hash. Returns a handle that always returns None when the field is absent.

Source

pub fn fields(&self) -> impl Iterator<Item = &str>

Source

pub fn remove(&mut self, node: u32, field: &str) -> Option<Value>

Remove the value stored at (node, field) and return it, or None if absent. Prunes the column’s inner map entry when it becomes empty.

Source

pub fn remove_all(&mut self, node: u32)

Drop every field stored for node. Idempotent: a node with no remaining props (or an id that was never written) is a no-op. Used by DeleteNode after rule retraction and user-edge sweep. Field iteration order is not observable — the resulting store is identical regardless of HashMap order.

Source

pub fn record_prop_tombstone(&mut self, node: u32, field: &str)

Record that the base-only prop (node, field) was deleted via the WAL.

This tombstone is consulted by ColumnsView::get before falling through to the archived base section, ensuring that removed base props are not resurrected by base fallback reads. Consumed (cleared) at snapshot merge.

Trait Implementations§

Source§

impl Clone for ColumnStore

Source§

fn clone(&self) -> ColumnStore

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ColumnStore

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for ColumnStore

Source§

fn default() -> ColumnStore

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ColumnStore

Source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ColumnStore

Source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. 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> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
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 = !

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

fn try_from(value: U) -> Result<T, !>

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.