pub struct SparseTile {
pub dim_dicts: Vec<DimDict>,
pub attr_cols: Vec<Vec<CellValue>>,
pub surrogates: Vec<Surrogate>,
pub valid_from_ms: Vec<i64>,
pub valid_until_ms: Vec<i64>,
pub row_kinds: Vec<u8>,
pub mbr: TileMBR,
}Expand description
Sparse tile payload.
Fields§
§dim_dicts: Vec<DimDict>One dictionary per schema dim, parallel to schema.dims.
attr_cols: Vec<Vec<CellValue>>One column per schema attr, parallel to schema.attrs.
surrogates: Vec<Surrogate>Per-cell global surrogate (one entry per row, parallel to the
dim-dict index streams and attr_cols). Cross-engine bitmap
joins read this column directly without translating coords back
to user-visible primary keys.
valid_from_ms: Vec<i64>Per-cell valid-time lower bound in milliseconds (inclusive).
Parallel to surrogates.
valid_until_ms: Vec<i64>Per-cell valid-time upper bound in milliseconds (exclusive).
nodedb_types::OPEN_UPPER (i64::MAX) means open-ended.
Parallel to surrogates.
row_kinds: Vec<u8>Per-row RowKind encoded as u8. Parallel to surrogates.
0 = Live, 1 = Tombstone, 2 = GdprErased.
Older segments written before this column existed will deserialise
with an empty Vec; readers treat a missing entry as Live.
mbr: TileMBRImplementations§
Source§impl SparseTile
impl SparseTile
Sourcepub fn empty(schema: &ArraySchema) -> Self
pub fn empty(schema: &ArraySchema) -> Self
Empty tile sized for the given schema.
Sourcepub fn nnz(&self) -> u32
pub fn nnz(&self) -> u32
Count of live (non-sentinel) rows. Used for MBR statistics and predicate-pushdown decisions. Sentinel rows are excluded.
Do not use this value as a row-iteration bound. Iteration must
cover sentinel rows so callers can observe Tombstone / GdprErased
markers when applying bitemporal visibility rules — use
row_count and filter with
row_kind instead.
Sourcepub fn row_count(&self) -> usize
pub fn row_count(&self) -> usize
Total physical row count including sentinel (Tombstone / GdprErased)
rows. Use this as the upper bound when iterating over rows; check
row_kind inside the loop and skip non-Live rows
when reading attribute columns. The attribute column vectors are
indexed by the live-row index (incremented only for Live rows),
not by the iteration index — confusing the two yields incorrect or
out-of-bounds reads.
Sourcepub fn row_kind(&self, row: usize) -> ArrayResult<RowKind>
pub fn row_kind(&self, row: usize) -> ArrayResult<RowKind>
Decode the RowKind for the given row index.
Returns RowKind::Live when row_kinds is empty (forward-compat
with pre-v4 data still in memory during migration) or when the row
index is out of range.
Trait Implementations§
Source§impl Clone for SparseTile
impl Clone for SparseTile
Source§fn clone(&self) -> SparseTile
fn clone(&self) -> SparseTile
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 SparseTile
impl Debug for SparseTile
Source§impl<'de> Deserialize<'de> for SparseTile
impl<'de> Deserialize<'de> for SparseTile
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for SparseTile
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for SparseTile
Source§impl PartialEq for SparseTile
impl PartialEq for SparseTile
Source§fn eq(&self, other: &SparseTile) -> bool
fn eq(&self, other: &SparseTile) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SparseTile
impl Serialize for SparseTile
Source§impl ToMessagePack for SparseTile
impl ToMessagePack for SparseTile
impl StructuralPartialEq for SparseTile
Auto Trait Implementations§
impl Freeze for SparseTile
impl RefUnwindSafe for SparseTile
impl Send for SparseTile
impl Sync for SparseTile
impl Unpin for SparseTile
impl UnsafeUnpin for SparseTile
impl UnwindSafe for SparseTile
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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.Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.