Skip to main content

ColumnStore

Struct ColumnStore 

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

Column store for high-performance filtering.

Implementations§

Source§

impl ColumnStore

Source

pub fn batch_update(&mut self, updates: &[BatchUpdate]) -> BatchUpdateResult

Performs batch updates with optimized cache locality.

Source

pub fn batch_update_same_value( &mut self, pks: &[i64], column: &str, value: &ColumnValue, ) -> BatchUpdateResult

Batch update with same value for multiple primary keys.

Source

pub fn set_ttl( &mut self, pk: i64, ttl_seconds: u64, ) -> Result<(), ColumnStoreError>

Sets a TTL (Time To Live) on a row.

§Errors

Returns an error when pk is missing or points to a deleted row.

Source

pub fn expire_rows(&mut self) -> ExpireResult

Expires all rows that have passed their TTL.

Source

pub fn upsert( &mut self, values: &[(&str, ColumnValue)], ) -> Result<UpsertResult, ColumnStoreError>

Upsert: inserts a new row or updates an existing one.

§Errors

Returns an error when primary key constraints are violated, when a referenced column does not exist, or when types mismatch.

Source

pub fn batch_upsert( &mut self, rows: &[Vec<(&str, ColumnValue)>], ) -> BatchUpsertResult

Batch upsert: inserts or updates multiple rows.

Source§

impl ColumnStore

Source

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. Excludes deleted rows.

Source

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. Excludes deleted rows.

Source

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. Excludes deleted rows.

Source

pub fn filter_lt_int(&self, column: &str, threshold: i64) -> Vec<usize>

Filters rows by range on an integer column (value < threshold).

Excludes deleted rows.

Source

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).

Excludes deleted rows.

Source

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. Excludes deleted rows.

Source

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. Excludes deleted rows.

Source

pub fn count_eq_string(&self, column: &str, value: &str) -> usize

Counts rows matching equality on a string column. Excludes deleted rows.

Source

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.

§Note

Row indices are safely converted to u32 for RoaringBitmap. This limits stores to ~4B rows. Indices >= u32::MAX are safely skipped (not truncated).

Source

pub fn filter_eq_string_bitmap( &self, column: &str, value: &str, ) -> RoaringBitmap

Filters rows by equality on a string column, returning a bitmap.

Indices >= u32::MAX are safely skipped.

Source

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.

Indices >= u32::MAX are safely skipped.

Source

pub fn bitmap_and(a: &RoaringBitmap, b: &RoaringBitmap) -> RoaringBitmap

Combines two filter results using AND.

Returns indices that are in both bitmaps.

Source

pub fn bitmap_or(a: &RoaringBitmap, b: &RoaringBitmap) -> RoaringBitmap

Combines two filter results using OR.

Returns indices that are in either bitmap.

Source

pub fn filter_in_string_bitmap( &self, column: &str, values: &[&str], ) -> RoaringBitmap

Returns a RoaringBitmap of row indices matching any value in the IN list.

Reuses scan_string_column_in infrastructure, converting Vec<usize> to bitmap. Excludes deleted rows. Returns empty bitmap for missing/mismatched columns.

Time complexity: O(rows) — full column scan with HashSet lookup per row.

Source

pub fn filter_in_int_bitmap( &self, column: &str, values: &[i64], ) -> RoaringBitmap

Returns a RoaringBitmap of row indices matching any i64 value in the IN list.

Uses FxHashSet for O(1) per-row membership test when values.len() > 16, linear scan otherwise. Excludes deleted rows.

Time complexity: O(rows) — full column scan.

Source§

impl ColumnStore

Source

pub fn filter_contains(&self, column: &str, value: &ColumnValue) -> Vec<usize>

Returns row indices where the array column contains value.

Returns empty results for non-existent or non-array columns. Excludes deleted rows and null arrays.

Source

pub fn filter_contains_any( &self, column: &str, values: &[ColumnValue], ) -> Vec<usize>

Returns row indices where the array contains at least one of values.

Returns empty results for non-existent or non-array columns.

Source

pub fn filter_contains_all( &self, column: &str, values: &[ColumnValue], ) -> Vec<usize>

Returns row indices where the array contains every value in values.

Returns empty results for non-existent or non-array columns.

Source

pub fn filter_contains_bitmap( &self, column: &str, value: &ColumnValue, ) -> RoaringBitmap

Bitmap variant of Self::filter_contains.

Safely skips indices exceeding u32::MAX.

Source

pub fn filter_contains_any_bitmap( &self, column: &str, values: &[ColumnValue], ) -> RoaringBitmap

Bitmap variant of Self::filter_contains_any.

Safely skips indices exceeding u32::MAX.

Source

pub fn filter_contains_all_bitmap( &self, column: &str, values: &[ColumnValue], ) -> RoaringBitmap

Bitmap variant of Self::filter_contains_all.

Safely skips indices exceeding u32::MAX.

Source§

impl ColumnStore

Source

pub fn filter_geo_distance(&self, params: &GeoDistanceParams<'_>) -> Vec<usize>

Returns row indices where the Haversine distance satisfies the comparison.

Returns empty results for non-existent or non-GeoPoint columns. Excludes deleted rows and null values.

Source

pub fn filter_geo_distance_bitmap( &self, params: &GeoDistanceParams<'_>, ) -> RoaringBitmap

Bitmap variant of filter_geo_distance.

Safely skips indices exceeding u32::MAX.

Source

pub fn filter_geo_bbox(&self, params: &GeoBboxParams<'_>) -> Vec<usize>

Returns row indices where the GeoPoint falls within the bounding box (inclusive).

Returns empty results for non-existent or non-GeoPoint columns, or when lat_min > lat_max or lng_min > lng_max.

Source

pub fn filter_geo_bbox_bitmap( &self, params: &GeoBboxParams<'_>, ) -> RoaringBitmap

Bitmap variant of filter_geo_bbox.

Safely skips indices exceeding u32::MAX.

Source§

impl ColumnStore

Source

pub fn insert_row( &mut self, values: &[(&str, ColumnValue)], ) -> Result<usize, ColumnStoreError>

Inserts a row with primary key validation and index update.

Type checking is not enforced on the fresh-insert path: a value that does not match the target column type is silently stored as NULL (push_typed fallback). Use set_column_value for validated writes.

§Errors

Returns an error if the primary key is missing or duplicated (when a duplicate row is live), or if GeoPoint coordinates are out of range.

Source

pub fn get_row_idx_by_pk(&self, pk: i64) -> Option<usize>

Gets the row index by primary key value — O(1) lookup.

Source

pub fn delete_by_pk(&mut self, pk: i64) -> bool

Deletes a row by primary key value.

Also clears any TTL metadata to prevent false-positive expirations. Tombstones the row in the deletion_bitmap (EPIC-043 US-002).

Source

pub fn update_by_pk( &mut self, pk: i64, column: &str, value: ColumnValue, ) -> Result<(), ColumnStoreError>

Updates a single column value for a row identified by primary key — O(1).

§Errors

Returns an error if the row does not exist, the column does not exist, the update targets the primary-key column, or the value type mismatches the column type.

Source

pub fn update_multi_by_pk( &mut self, pk: i64, updates: &[(&str, ColumnValue)], ) -> Result<(), ColumnStoreError>

Updates multiple columns atomically for a row identified by primary key.

§Errors

Returns an error if the row does not exist, one of the columns does not exist, one update attempts to modify the primary key, or a value type mismatches its target column type.

Source§

impl ColumnStore

Source

pub fn vacuum(&mut self, _config: VacuumConfig) -> VacuumStats

Runs vacuum to remove tombstones and compact data.

This operation removes deleted rows from the column store, reclaiming space and improving query performance. The operation is done in-place by building new column vectors without the deleted rows.

§Arguments
  • _config - Vacuum configuration. Currently ignored: the vacuum runs as a single in-memory pass (batch_size, sync, and yield_interval_ms have no effect).
§Returns

Statistics about the vacuum operation.

Source

pub fn should_vacuum(&self, threshold: f64) -> bool

Returns whether vacuum is recommended based on tombstone ratio.

§Arguments
  • threshold - Ratio of deleted rows to trigger vacuum (0.0-1.0)
Source

pub fn is_row_deleted_bitmap(&self, row_idx: usize) -> bool

Checks if a row is deleted using RoaringBitmap (O(1) lookup).

Single source of truth for deletion state. Indices >= u32::MAX cannot be tombstoned (the bitmap is u32-indexed) and are reported as live.

Source

pub fn live_row_indices(&self) -> impl Iterator<Item = usize> + '_

Returns an iterator over live (non-deleted) row indices.

Uses RoaringBitmap for efficient filtering.

Source

pub fn deletion_bitmap(&self) -> &RoaringBitmap

Returns the deletion bitmap for advanced filtering operations.

Source

pub fn deleted_count_bitmap(&self) -> u64

Returns the number of deleted rows using the bitmap (O(1)).

Source§

impl ColumnStore

Source

pub fn new() -> Self

Creates a new empty column store.

Source

pub fn with_schema(fields: &[(&str, ColumnType)]) -> Self

Creates a column store with pre-defined indexed fields.

Source

pub fn with_schema_validated( fields: &[(&str, ColumnType)], ) -> Result<Self, ColumnStoreError>

Creates a column store with validated schema (rejects nested arrays).

§Errors

Returns ColumnStoreError::TypeMismatch if any column uses nested arrays.

Source

pub fn with_primary_key( fields: &[(&str, ColumnType)], pk_column: &str, ) -> Result<Self>

Creates a column store with a primary key for O(1) lookups.

§Errors

Returns Error::ColumnStoreError if pk_column is not found in fields or is not of type Int.

Source

pub fn primary_key_column(&self) -> Option<&str>

Returns the primary key column name if set.

Source

pub fn add_column(&mut self, name: &str, col_type: &ColumnType)

Adds a new column to the store.

Warning: this does not backfill nulls for rows that already exist, so the new column would be shorter than row_count and desynchronized from every other column. It is only sound to call this while the store is empty (row_count == 0, i.e. schema-definition time). Use ColumnStore::add_column_backfilled to add a column once rows exist.

Nested arrays are silently treated as scalar arrays; use with_schema_validated for strict schema validation.

§Panics

In debug builds, panics if the store already contains rows (row_count > 0). Release builds skip the check for performance, but such a call remains a logic error.

Source

pub fn row_count(&self) -> usize

Returns the total number of rows in the store (including deleted/tombstoned rows).

Source

pub fn active_row_count(&self) -> usize

Returns the number of active (non-deleted) rows in the store.

Source

pub fn deleted_row_count(&self) -> usize

Returns the number of deleted (tombstoned) rows.

Source

pub fn string_table(&self) -> &StringTable

Returns the string table for string interning.

Source

pub fn string_table_mut(&mut self) -> &mut StringTable

Returns a mutable reference to the string table.

Source

pub fn push_row_unchecked(&mut self, values: &[(&str, ColumnValue)])

Pushes values for a new row (low-level, no validation).

Source

pub fn push_row(&mut self, values: &[(&str, ColumnValue)])

Convenience alias for push_row_unchecked().

Source

pub fn get_column(&self, name: &str) -> Option<&TypedColumn>

Gets a column by name.

Source

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

Returns an iterator over column names.

Source

pub fn get_value_as_json(&self, column: &str, row_idx: usize) -> Option<Value>

Gets a value from a column at a specific row index as JSON.

Trait Implementations§

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

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Paint for T
where T: ?Sized,

Source§

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 primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Primary].

§Example
println!("{}", value.primary());
Source§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Fixed].

§Example
println!("{}", value.fixed(color));
Source§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Rgb].

§Example
println!("{}", value.rgb(r, g, b));
Source§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Black].

§Example
println!("{}", value.black());
Source§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Red].

§Example
println!("{}", value.red());
Source§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Green].

§Example
println!("{}", value.green());
Source§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Yellow].

§Example
println!("{}", value.yellow());
Source§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Blue].

§Example
println!("{}", value.blue());
Source§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Magenta].

§Example
println!("{}", value.magenta());
Source§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Cyan].

§Example
println!("{}", value.cyan());
Source§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: White].

§Example
println!("{}", value.white());
Source§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlack].

§Example
println!("{}", value.bright_black());
Source§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightRed].

§Example
println!("{}", value.bright_red());
Source§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightGreen].

§Example
println!("{}", value.bright_green());
Source§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightYellow].

§Example
println!("{}", value.bright_yellow());
Source§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlue].

§Example
println!("{}", value.bright_blue());
Source§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.bright_magenta());
Source§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightCyan].

§Example
println!("{}", value.bright_cyan());
Source§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightWhite].

§Example
println!("{}", value.bright_white());
Source§

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>

Returns self with the bg() set to [Color :: Primary].

§Example
println!("{}", value.on_primary());
Source§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Fixed].

§Example
println!("{}", value.on_fixed(color));
Source§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
Source§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Black].

§Example
println!("{}", value.on_black());
Source§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Red].

§Example
println!("{}", value.on_red());
Source§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Green].

§Example
println!("{}", value.on_green());
Source§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Yellow].

§Example
println!("{}", value.on_yellow());
Source§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Blue].

§Example
println!("{}", value.on_blue());
Source§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Magenta].

§Example
println!("{}", value.on_magenta());
Source§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Cyan].

§Example
println!("{}", value.on_cyan());
Source§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: White].

§Example
println!("{}", value.on_white());
Source§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlack].

§Example
println!("{}", value.on_bright_black());
Source§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightRed].

§Example
println!("{}", value.on_bright_red());
Source§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightGreen].

§Example
println!("{}", value.on_bright_green());
Source§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
Source§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlue].

§Example
println!("{}", value.on_bright_blue());
Source§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
Source§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
Source§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightWhite].

§Example
println!("{}", value.on_bright_white());
Source§

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 bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Bold].

§Example
println!("{}", value.bold());
Source§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Dim].

§Example
println!("{}", value.dim());
Source§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Italic].

§Example
println!("{}", value.italic());
Source§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute :: Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute :: RapidBlink].

§Example
println!("{}", value.rapid_blink());
Source§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Invert].

§Example
println!("{}", value.invert());
Source§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Conceal].

§Example
println!("{}", value.conceal());
Source§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Strike].

§Example
println!("{}", value.strike());
Source§

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 mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Mask].

§Example
println!("{}", value.mask());
Source§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Wrap].

§Example
println!("{}", value.wrap());
Source§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Linger].

§Example
println!("{}", value.linger());
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.

Returns self with the quirk() set to [Quirk :: Clear].

§Example
println!("{}", value.clear());
Source§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Resetting].

§Example
println!("{}", value.resetting());
Source§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Bright].

§Example
println!("{}", value.bright());
Source§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: OnBright].

§Example
println!("{}", value.on_bright());
Source§

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§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new Painted with a default Style. Read more
Source§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more