Skip to main content

QueryOp

Enum QueryOp 

Source
pub enum QueryOp {
Show 13 variants Aggregate { collection: String, group_by: Vec<String>, aggregates: Vec<AggregateSpec>, filters: Vec<u8>, having: Vec<u8>, limit: usize, sub_group_by: Vec<String>, sub_aggregates: Vec<AggregateSpec>, grouping_sets: Vec<Vec<u32>>, sort_keys: Vec<(String, bool)>, }, PartialAggregate { collection: String, group_by: Vec<String>, aggregates: Vec<AggregateSpec>, filters: Vec<u8>, }, HashJoin {
Show 15 fields left_collection: String, right_collection: String, left_alias: Option<String>, right_alias: Option<String>, on: Vec<(String, String)>, join_type: String, limit: usize, post_group_by: Vec<String>, post_aggregates: Vec<(String, String)>, projection: Vec<JoinProjection>, post_filters: Vec<u8>, inline_left: Option<Box<PhysicalPlan>>, inline_right: Option<Box<PhysicalPlan>>, inline_left_bitmap: Option<Box<PhysicalPlan>>, inline_right_bitmap: Option<Box<PhysicalPlan>>,
}, InlineHashJoin { left_data: Vec<u8>, right_data: Vec<u8>, right_alias: Option<String>, on: Vec<(String, String)>, join_type: String, limit: usize, projection: Vec<JoinProjection>, post_filters: Vec<u8>, }, BroadcastJoin { large_collection: String, small_collection: String, large_alias: Option<String>, small_alias: Option<String>, broadcast_data: Vec<u8>, on: Vec<(String, String)>, join_type: String, limit: usize, post_group_by: Vec<String>, post_aggregates: Vec<(String, String)>, projection: Vec<JoinProjection>, post_filters: Vec<u8>, }, ShuffleJoin { left_collection: String, right_collection: String, on: Vec<(String, String)>, join_type: String, limit: usize, target_core: usize, }, NestedLoopJoin { left_collection: String, right_collection: String, condition: Vec<u8>, join_type: String, limit: usize, }, SortMergeJoin { left_collection: String, right_collection: String, on: Vec<(String, String)>, join_type: String, limit: usize, pre_sorted: bool, }, FacetCounts { collection: String, filters: Vec<u8>, fields: Vec<String>, limit_per_facet: usize, }, RecursiveScan { collection: String, base_filters: Vec<u8>, recursive_filters: Vec<u8>, join_link: Option<(String, String)>, max_iterations: usize, distinct: bool, limit: usize, }, RecursiveValue { cte_name: String, columns: Vec<String>, init_exprs: Vec<String>, step_exprs: Vec<String>, condition: Option<String>, max_depth: usize, distinct: bool, }, LateralTopK { outer_plan: Box<PhysicalPlan>, outer_alias: String, inner_collection: String, inner_filters: Vec<u8>, inner_order_by: Vec<(String, bool)>, inner_limit: usize, correlation_keys: Vec<(String, String)>, lateral_alias: String, projection: Vec<JoinProjection>, left_join: bool, }, LateralLoop { outer_plan: Box<PhysicalPlan>, outer_alias: String, inner_collection: String, inner_filters: Vec<u8>, correlation_predicates: Vec<(String, String)>, lateral_alias: String, projection: Vec<JoinProjection>, left_join: bool, outer_row_cap: usize, },
}
Expand description

Query-level physical operations (joins, aggregates).

Variants§

§

Aggregate

Aggregate: GROUP BY + aggregate functions.

Fields

§collection: String
§group_by: Vec<String>
§aggregates: Vec<AggregateSpec>
§filters: Vec<u8>
§having: Vec<u8>

HAVING predicates applied post-aggregation.

§limit: usize
§sub_group_by: Vec<String>
§sub_aggregates: Vec<AggregateSpec>
§grouping_sets: Vec<Vec<u32>>

ROLLUP / CUBE / GROUPING SETS expansion. Each inner Vec<u32> is one grouping set — the indices into group_by that are present (non-NULL) for rows in that set. Empty outer vec = plain single-set GROUP BY (no null-filling needed).

§sort_keys: Vec<(String, bool)>

Post-aggregation sort keys: (column_name, ascending). Empty = preserve executor’s natural order (hash-map iteration for plain GROUP BY). The executor applies the sort after all groups are finalized and HAVING is filtered.

§

PartialAggregate

Partial aggregate: each core computes locally, Control Plane merges.

Fields

§collection: String
§group_by: Vec<String>
§aggregates: Vec<AggregateSpec>
§filters: Vec<u8>
§

HashJoin

Hash join: build hash map on right, probe with left.

Fields

§left_collection: String
§right_collection: String
§left_alias: Option<String>
§right_alias: Option<String>
§join_type: String
§limit: usize
§post_group_by: Vec<String>

Post-join GROUP BY columns (empty = no aggregation).

§post_aggregates: Vec<(String, String)>

Post-join aggregates: (op, field) pairs (empty = no aggregation).

§projection: Vec<JoinProjection>

Post-join projection: column names to keep (empty = all).

§post_filters: Vec<u8>

Post-join WHERE filter predicates (MessagePack).

§inline_left: Option<Box<PhysicalPlan>>

Inline left sub-plan for multi-way joins. When set, the executor runs this sub-plan first and uses its result as the left side instead of scanning left_collection.

§inline_right: Option<Box<PhysicalPlan>>

Inline right sub-plan for scalar subqueries or other materialized small-side inputs. The Control Plane executes this plan first, merges it if needed, then embeds the result into BroadcastJoin.

§inline_left_bitmap: Option<Box<PhysicalPlan>>

Bitmap-producer sub-plan for the left side. When set, the executor executes this plan first, collects surrogates from all returned rows, and injects the resulting bitmap into the probe-side prefilter before scanning. None = no bitmap pushdown for the left side.

§inline_right_bitmap: Option<Box<PhysicalPlan>>

Bitmap-producer sub-plan for the right side. Same semantics as inline_left_bitmap but applied to the right (probe) collection.

§

InlineHashJoin

Inline hash join: both sides are pre-gathered msgpack data. Used for multi-way joins where the left side is the result of another join.

Fields

§left_data: Vec<u8>

Left side: msgpack array of maps (from inner join result).

§right_data: Vec<u8>

Right side: raw broadcast scan data.

§right_alias: Option<String>
§join_type: String
§limit: usize
§projection: Vec<JoinProjection>
§post_filters: Vec<u8>
§

BroadcastJoin

Broadcast join: small side serialized in the plan.

Fields

§large_collection: String
§small_collection: String
§large_alias: Option<String>
§small_alias: Option<String>
§broadcast_data: Vec<u8>
§join_type: String
§limit: usize
§post_group_by: Vec<String>

Post-join GROUP BY columns (empty = no aggregation).

§post_aggregates: Vec<(String, String)>

Post-join aggregates: (op, field) pairs (empty = no aggregation).

§projection: Vec<JoinProjection>

Post-join projection: column names to keep (empty = all).

§post_filters: Vec<u8>

Post-join WHERE filter predicates (MessagePack).

§

ShuffleJoin

Shuffle join: repartition by join key via SPSC.

Fields

§left_collection: String
§right_collection: String
§join_type: String
§limit: usize
§target_core: usize
§

NestedLoopJoin

Nested loop join: fallback for non-equi joins.

Fields

§left_collection: String
§right_collection: String
§condition: Vec<u8>

Join condition as serialized Vec<ScanFilter>.

§join_type: String
§limit: usize
§

SortMergeJoin

Sort-merge join: both sides pre-sorted by join key. Optimal when both collections have index-ordered scans or when the planner sorts both sides before joining.

Fields

§left_collection: String
§right_collection: String
§join_type: String
§limit: usize
§pre_sorted: bool

If true, both sides are assumed pre-sorted by join key (skip sort phase).

§

FacetCounts

Multi-facet aggregation: compute facet counts for multiple fields in a single query, sharing the filter evaluation across all facets.

Fields

§collection: String
§filters: Vec<u8>

Serialized Vec<ScanFilter> predicates (MessagePack).

§fields: Vec<String>

Field names to facet on (each produces a [{value, count}] array).

§limit_per_facet: usize

Maximum number of values to return per facet field (0 = unlimited).

§

RecursiveScan

Recursive CTE: iterative fixed-point execution.

Executes the base query once, then repeatedly executes the recursive query using the previous iteration’s results as the working table, until no new rows are produced (fixed point).

Fields

§collection: String

Collection for the recursive scan.

§base_filters: Vec<u8>

Base query filters (seeded once).

§recursive_filters: Vec<u8>

Recursive step filters (applied to working table each iteration).

§join_link: Option<(String, String)>

Equi-join link for tree-traversal recursion: (collection_field, working_table_field). Each iteration finds rows where collection_field value matches a working_table_field value from the previous iteration.

§max_iterations: usize

Maximum iterations to prevent infinite loops. Default: 100.

§distinct: bool

Whether to deduplicate results (UNION vs UNION ALL).

§limit: usize
§

RecursiveValue

Value-generating recursive CTE: iterative expression evaluation.

No collection is needed. The executor evaluates the anchor expressions once to produce the first row, then repeatedly applies the step expressions to the previous row until the condition becomes false, a fixed point is reached, or max_depth is exceeded (typed error).

Fields

§cte_name: String

CTE name (used in error messages).

§columns: Vec<String>

Column names (length == init_exprs.len() == step_exprs.len()).

§init_exprs: Vec<String>

Anchor SELECT expressions as raw SQL text.

§step_exprs: Vec<String>

Recursive step SELECT expressions as raw SQL text.

§condition: Option<String>

Optional WHERE condition as raw SQL text.

§max_depth: usize

Maximum iterations before returning a depth-exceeded error.

§distinct: bool

Whether to deduplicate (UNION vs UNION ALL).

§

LateralTopK

LATERAL equi-correlated top-K: scan inner_collection once per outer row, applying the equi-correlation as an equality filter, then return the top inner_limit rows ordered by inner_order_by.

The executor first runs outer_plan to materialise outer rows, then for each outer row injects the equi-correlation as an equality filter on inner_collection, applies inner_order_by, and keeps the top inner_limit rows. Output rows are (outer_row merged with inner_row).

correlation_keys are (outer_col, inner_col) equi-join pairs.

Fields

§outer_plan: Box<PhysicalPlan>

Sub-plan that produces the outer (driving) rows.

§outer_alias: String

Alias qualifying the outer columns in output rows.

§inner_collection: String

Inner collection to scan per outer row.

§inner_filters: Vec<u8>

Non-correlated filters applied to every inner scan (msgpack bytes).

§inner_order_by: Vec<(String, bool)>

Sort keys for the inner per-outer-row result. Each entry is (field_name, ascending).

§inner_limit: usize

Maximum inner rows per outer row.

§correlation_keys: Vec<(String, String)>

Equi-join pairs (outer_col, inner_col).

§lateral_alias: String

Alias qualifying inner columns in output rows.

§projection: Vec<JoinProjection>

Output projection (empty = all columns).

§left_join: bool

LEFT join semantics: preserve outer rows when inner is empty.

§

LateralLoop

LATERAL nested-loop: for each outer row, re-execute the inner plan with correlated values injected as additional equality filters.

The executor runs outer_plan, then for each outer row reads the outer_col values from correlation_predicates, appends equality filters on the corresponding inner_col fields, and scans inner_collection.

Fields

§outer_plan: Box<PhysicalPlan>

Sub-plan that produces the outer (driving) rows.

§outer_alias: String

Alias qualifying the outer columns in output rows.

§inner_collection: String

Inner collection to scan per outer row.

§inner_filters: Vec<u8>

Base inner filters (non-correlated, msgpack bytes).

§correlation_predicates: Vec<(String, String)>

Correlated predicates: (inner_field, outer_field).

§lateral_alias: String

Alias qualifying inner columns in output rows.

§projection: Vec<JoinProjection>

Output projection (empty = all columns).

§left_join: bool

LEFT join semantics.

§outer_row_cap: usize

Hard cap on outer rows. Queries that exceed this cap return a typed LateralCapExceeded error instead of silently truncating.

Trait Implementations§

Source§

impl Clone for QueryOp

Source§

fn clone(&self) -> QueryOp

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for QueryOp

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for QueryOp

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for QueryOp

Source§

fn read<R: Read<'__msgpack_de>>(reader: &mut R) -> Result<Self, Error>
where Self: Sized,

Reads the MessagePack representation of this value from the provided reader.
Source§

impl PartialEq for QueryOp

Source§

fn eq(&self, other: &QueryOp) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for QueryOp

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for QueryOp

Source§

impl ToMessagePack for QueryOp

Source§

fn write<W: Write>(&self, writer: &mut W) -> Result<(), Error>

Writes the MessagePack representation of this value into the provided writer.

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

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromMessagePackOwned for T
where T: for<'a> FromMessagePack<'a>,

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

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T> MaybeSendSync for T

Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
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> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Rleable for T
where T: Clone + PartialEq + Serialize + for<'de> Deserialize<'de>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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