pub enum ColumnData {
Int {
data: Vec<i64>,
present: Vec<u64>,
},
Float {
data: Vec<f64>,
present: Vec<u64>,
},
Bool {
data: Vec<u8>,
present: Vec<u64>,
},
Str {
ids: Vec<u32>,
present: Vec<u64>,
strings: Vec<String>,
},
Mixed(Vec<u8>),
Vector {
dim: u32,
data: Vec<f64>,
present: Vec<u64>,
},
}Expand description
Typed column payload. Mixed/list columns fall back to a bincode blob.
Tag 5 (Vector) stores raw f64 runs for all-float list properties,
enabling zero-copy &[f64] access without boxing through Value.
Variants§
Int
Dense i64 column. present is the presence bitmap as u64 words (LE).
Float
Dense f64 column.
Bool
Dense bool column stored as u8 (0/1).
Str
String column: ids index into strings; present is the presence bitmap.
Mixed(Vec<u8>)
Mixed/list column: bincode-encoded HashMap<u32, Value>.
Vector
Raw f64 vector column (B2). dim floats per node, stored contiguously.
Layout: data[id * dim .. (id + 1) * dim] = the vector for node id.
present[word] bit bit is set iff id = word*64 + bit has a value.
Zero-copy &[f64] access via ColumnsView::vector(id, field).
Overlay/archive asymmetry: vectors written after the last snapshot
live in the owned overlay as Value::List([Value::Float, ...]) and are
not accessible through vector(). Callers must fall back to
ColumnsView::get() which returns ValueRef::Owned(Value::List(...)).
Trait Implementations§
Source§impl Archive for ColumnData
impl Archive for ColumnData
Source§type Archived = ArchivedColumnData
type Archived = ArchivedColumnData
Source§type Resolver = ColumnDataResolver
type Resolver = ColumnDataResolver
Source§fn resolve(
&self,
resolver: <Self as Archive>::Resolver,
out: Place<<Self as Archive>::Archived>,
)
fn resolve( &self, resolver: <Self as Archive>::Resolver, out: Place<<Self as Archive>::Archived>, )
Source§const COPY_OPTIMIZATION: CopyOptimization<Self> = _
const COPY_OPTIMIZATION: CopyOptimization<Self> = _
serialize. Read moreSource§impl Clone for ColumnData
impl Clone for ColumnData
Source§fn clone(&self) -> ColumnData
fn clone(&self) -> ColumnData
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 ColumnData
impl Debug for ColumnData
Source§impl<__D: Fallible + ?Sized> Deserialize<ColumnData, __D> for Archived<ColumnData>where
Vec<i64>: Archive,
<Vec<i64> as Archive>::Archived: Deserialize<Vec<i64>, __D>,
Vec<u64>: Archive,
<Vec<u64> as Archive>::Archived: Deserialize<Vec<u64>, __D>,
Vec<f64>: Archive,
<Vec<f64> as Archive>::Archived: Deserialize<Vec<f64>, __D>,
Vec<u8>: Archive,
<Vec<u8> as Archive>::Archived: Deserialize<Vec<u8>, __D>,
Vec<u32>: Archive,
<Vec<u32> as Archive>::Archived: Deserialize<Vec<u32>, __D>,
Vec<String>: Archive,
<Vec<String> as Archive>::Archived: Deserialize<Vec<String>, __D>,
u32: Archive,
<u32 as Archive>::Archived: Deserialize<u32, __D>,
impl<__D: Fallible + ?Sized> Deserialize<ColumnData, __D> for Archived<ColumnData>where
Vec<i64>: Archive,
<Vec<i64> as Archive>::Archived: Deserialize<Vec<i64>, __D>,
Vec<u64>: Archive,
<Vec<u64> as Archive>::Archived: Deserialize<Vec<u64>, __D>,
Vec<f64>: Archive,
<Vec<f64> as Archive>::Archived: Deserialize<Vec<f64>, __D>,
Vec<u8>: Archive,
<Vec<u8> as Archive>::Archived: Deserialize<Vec<u8>, __D>,
Vec<u32>: Archive,
<Vec<u32> as Archive>::Archived: Deserialize<Vec<u32>, __D>,
Vec<String>: Archive,
<Vec<String> as Archive>::Archived: Deserialize<Vec<String>, __D>,
u32: Archive,
<u32 as Archive>::Archived: Deserialize<u32, __D>,
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<ColumnData, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<ColumnData, <__D as Fallible>::Error>
Auto Trait Implementations§
impl Freeze for ColumnData
impl RefUnwindSafe for ColumnData
impl Send for ColumnData
impl Sync for ColumnData
impl Unpin for ColumnData
impl UnsafeUnpin for ColumnData
impl UnwindSafe for ColumnData
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> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
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,
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.