pub struct ColumnStore { /* private fields */ }Expand description
Column store for high-performance filtering.
Implementations§
Source§impl ColumnStore
impl ColumnStore
Sourcepub fn with_schema(fields: &[(&str, ColumnType)]) -> Self
pub fn with_schema(fields: &[(&str, ColumnType)]) -> Self
Creates a column store with pre-defined indexed fields.
§Arguments
fields- List of (field_name,field_type) tuples
Sourcepub fn add_column(&mut self, name: &str, col_type: ColumnType)
pub fn add_column(&mut self, name: &str, col_type: ColumnType)
Adds a new column to the store.
Sourcepub fn string_table(&self) -> &StringTable
pub fn string_table(&self) -> &StringTable
Returns the string table for string interning.
Sourcepub fn string_table_mut(&mut self) -> &mut StringTable
pub fn string_table_mut(&mut self) -> &mut StringTable
Returns a mutable reference to the string table.
Sourcepub fn push_row(&mut self, values: &[(&str, ColumnValue)])
pub fn push_row(&mut self, values: &[(&str, ColumnValue)])
Pushes values for a new row.
Missing fields will be set to null.
Sourcepub fn get_column(&self, name: &str) -> Option<&TypedColumn>
pub fn get_column(&self, name: &str) -> Option<&TypedColumn>
Gets a column by name.
Sourcepub fn filter_eq_int(&self, column: &str, value: i64) -> Vec<usize>
pub fn filter_eq_int(&self, column: &str, value: i64) -> Vec<usize>
Filters rows by equality on an integer column.
Returns a vector of row indices that match.
Sourcepub fn filter_eq_string(&self, column: &str, value: &str) -> Vec<usize>
pub fn filter_eq_string(&self, column: &str, value: &str) -> Vec<usize>
Filters rows by equality on a string column.
Returns a vector of row indices that match.
Sourcepub fn filter_gt_int(&self, column: &str, threshold: i64) -> Vec<usize>
pub fn filter_gt_int(&self, column: &str, threshold: i64) -> Vec<usize>
Filters rows by range on an integer column (value > threshold).
Returns a vector of row indices that match.
Sourcepub fn filter_lt_int(&self, column: &str, threshold: i64) -> Vec<usize>
pub fn filter_lt_int(&self, column: &str, threshold: i64) -> Vec<usize>
Filters rows by range on an integer column (value < threshold).
Sourcepub fn filter_range_int(&self, column: &str, low: i64, high: i64) -> Vec<usize>
pub fn filter_range_int(&self, column: &str, low: i64, high: i64) -> Vec<usize>
Filters rows by range on an integer column (low < value < high).
Sourcepub fn filter_in_string(&self, column: &str, values: &[&str]) -> Vec<usize>
pub fn filter_in_string(&self, column: &str, values: &[&str]) -> Vec<usize>
Filters rows by IN clause on a string column.
Returns a vector of row indices that match any of the values.
Sourcepub fn count_eq_int(&self, column: &str, value: i64) -> usize
pub fn count_eq_int(&self, column: &str, value: i64) -> usize
Counts rows matching equality on an integer column.
More efficient than filter_eq_int().len() as it doesn’t allocate.
Sourcepub fn count_eq_string(&self, column: &str, value: &str) -> usize
pub fn count_eq_string(&self, column: &str, value: &str) -> usize
Counts rows matching equality on a string column.
Sourcepub fn filter_eq_int_bitmap(&self, column: &str, value: i64) -> RoaringBitmap
pub fn filter_eq_int_bitmap(&self, column: &str, value: i64) -> RoaringBitmap
Filters rows by equality on an integer column, returning a bitmap.
Uses RoaringBitmap for memory-efficient storage of matching indices.
Useful for combining multiple filters with AND/OR operations.
Sourcepub fn filter_eq_string_bitmap(
&self,
column: &str,
value: &str,
) -> RoaringBitmap
pub fn filter_eq_string_bitmap( &self, column: &str, value: &str, ) -> RoaringBitmap
Filters rows by equality on a string column, returning a bitmap.
Sourcepub fn filter_range_int_bitmap(
&self,
column: &str,
low: i64,
high: i64,
) -> RoaringBitmap
pub fn filter_range_int_bitmap( &self, column: &str, low: i64, high: i64, ) -> RoaringBitmap
Filters rows by range on an integer column, returning a bitmap.
Sourcepub fn bitmap_and(a: &RoaringBitmap, b: &RoaringBitmap) -> RoaringBitmap
pub fn bitmap_and(a: &RoaringBitmap, b: &RoaringBitmap) -> RoaringBitmap
Combines two filter results using AND.
Returns indices that are in both bitmaps.
Sourcepub fn bitmap_or(a: &RoaringBitmap, b: &RoaringBitmap) -> RoaringBitmap
pub fn bitmap_or(a: &RoaringBitmap, b: &RoaringBitmap) -> RoaringBitmap
Combines two filter results using OR.
Returns indices that are in either bitmap.
Trait Implementations§
Source§impl Debug for ColumnStore
impl Debug for ColumnStore
Source§impl Default for ColumnStore
impl Default for ColumnStore
Source§fn default() -> ColumnStore
fn default() -> ColumnStore
Auto Trait Implementations§
impl Freeze for ColumnStore
impl RefUnwindSafe for ColumnStore
impl Send for ColumnStore
impl Sync for ColumnStore
impl Unpin for ColumnStore
impl UnwindSafe for ColumnStore
Blanket Implementations§
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> 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> 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>
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);