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
impl ColumnStore
pub fn new() -> Self
pub fn set(&mut self, node: u32, field: &str, value: Value)
pub fn get(&self, node: u32, field: &str) -> Option<&Value>
Sourcepub fn column(&self, field: &str) -> ColumnHandle<'_>
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.
pub fn fields(&self) -> impl Iterator<Item = &str>
Sourcepub fn remove(&mut self, node: u32, field: &str) -> Option<Value>
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.
Sourcepub fn remove_all(&mut self, node: u32)
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.
Sourcepub fn record_prop_tombstone(&mut self, node: u32, field: &str)
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
impl Clone for ColumnStore
Source§fn clone(&self) -> ColumnStore
fn clone(&self) -> ColumnStore
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ColumnStore
impl Debug for ColumnStore
Source§impl Default for ColumnStore
impl Default for ColumnStore
Source§fn default() -> ColumnStore
fn default() -> ColumnStore
Source§impl<'de> Deserialize<'de> for ColumnStore
impl<'de> Deserialize<'de> for ColumnStore
Source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
Auto Trait Implementations§
impl Freeze for ColumnStore
impl RefUnwindSafe for ColumnStore
impl Send for ColumnStore
impl Sync for ColumnStore
impl Unpin for ColumnStore
impl UnsafeUnpin for ColumnStore
impl UnwindSafe for ColumnStore
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.