pub struct AnalysisModal {Show 29 fields
pub scroll_position: usize,
pub selected_column: Option<usize>,
pub describe_columns: ColumnScroll,
pub distribution_columns: ColumnScroll,
pub correlation_columns: ColumnScroll,
pub sample: Sample,
pub sample_dataset: Option<u64>,
pub sample_run_for: Option<u64>,
pub sample_form: Option<SampleForm>,
pub own_sample: Option<Sample>,
pub table_state: TableState,
pub distribution_table_state: TableState,
pub correlation_table_state: TableState,
pub sidebar_state: TableState,
pub describe_results: Option<AnalysisResults>,
pub distribution_results: Option<AnalysisResults>,
pub correlation_results: Option<AnalysisResults>,
pub computing: Option<AnalysisProgress>,
pub view: AnalysisView,
pub focus: AnalysisFocus,
pub selected_tool: Option<AnalysisTool>,
pub selected_distribution: Option<usize>,
pub selected_correlation: Option<(usize, usize)>,
pub correlation_method: CorrelationMethod,
pub selected_theoretical_distribution: DistributionType,
pub distribution_selector_state: TableState,
pub histogram_scale: HistogramScale,
pub quality: QualityState,
pub results_view: Option<u64>,
/* private fields */
}Fields§
§scroll_position: usize§selected_column: Option<usize>§describe_columns: ColumnScroll§distribution_columns: ColumnScroll§correlation_columns: ColumnScrollKept on the selected cell by the matrix as it draws.
sample: SampleThe rows every tool reads (one scope, method, size and seed), so tools compare
like with like. Kept across opens; s edits it.
sample_dataset: Option<u64>The dataset the sample’s scope was chosen for: a partition or file scope means nothing on another.
sample_run_for: Option<u64>The dataset a sample last ran on; after that, a tool with no result runs at once instead of asking with the Sample form.
sample_form: Option<SampleForm>The Sample form, while it is open.
own_sample: Option<Sample>The tools’ own sample, set aside while the view has its own sample, which every tool then reads whole.
table_state: TableState§distribution_table_state: TableState§correlation_table_state: TableState§describe_results: Option<AnalysisResults>Cached results per tool; each tool computes and stores its own state independently.
distribution_results: Option<AnalysisResults>§correlation_results: Option<AnalysisResults>§computing: Option<AnalysisProgress>Set while a tool runs: its phase and progress, drawn in place of results.
view: AnalysisView§focus: AnalysisFocus§selected_tool: Option<AnalysisTool>None = no tool selected yet (show instructions); Some(tool) = user chose a tool (may be computing or showing results).
selected_distribution: Option<usize>§selected_correlation: Option<(usize, usize)>§correlation_method: CorrelationMethodThe coefficient the matrix and the pair detail show; both are computed.
selected_theoretical_distribution: DistributionType§distribution_selector_state: TableState§histogram_scale: HistogramScale§quality: QualityStateData Quality: its plan, its report and where the cursor is in each.
results_view: Option<u64>The view (DataTableState::len_generation) the results are of.
Implementations§
Source§impl AnalysisModal
impl AnalysisModal
Sourcepub fn with_sample_rows(rows: usize) -> Self
pub fn with_sample_rows(rows: usize) -> Self
A modal whose shared sample starts at the configured size: [performance] analysis_sample_rows, where 0 means every row.
Sourcepub fn open(&mut self, view: Option<u64>)
pub fn open(&mut self, view: Option<u64>)
Open the screen on view: a close’s results on this view come back as they
were; on any other view every tool starts empty.
Sourcepub fn close(&mut self)
pub fn close(&mut self)
Close the screen, keeping the results for the next open on the same view.
Sourcepub fn current_results(&self) -> Option<&AnalysisResults>
pub fn current_results(&self) -> Option<&AnalysisResults>
Returns the cached results for the currently selected tool, if any.
Sourcepub fn switch_focus(&mut self)
pub fn switch_focus(&mut self)
Tab on the main view: the tool list and the result trade focus. Not offered on detail views (one focusable thing) or before a tool is chosen.
Sourcepub fn highlighted_tool(&self) -> Option<AnalysisTool>
pub fn highlighted_tool(&self) -> Option<AnalysisTool>
The tool under the sidebar cursor.
Sourcepub fn select_tool(&mut self)
pub fn select_tool(&mut self)
Select the tool under the sidebar cursor; the caller places the cursor.
pub fn next_tool(&mut self)
pub fn previous_tool(&mut self)
pub fn open_distribution_detail(&mut self)
pub fn open_correlation_detail(&mut self)
pub fn close_detail(&mut self)
pub fn scroll_left(&mut self)
pub fn scroll_right(&mut self)
Sourcepub fn column_scroll(&self) -> Option<&ColumnScroll>
pub fn column_scroll(&self) -> Option<&ColumnScroll>
The selected tool’s statistic scroll, for the tools that scroll by statistic.
Sourcepub fn follow_view_sample(&mut self, sampled: bool)
pub fn follow_view_sample(&mut self, sampled: bool)
Read the view’s sample whole while it has one (sampled), and the tools’ own
sample again once it has none.
pub fn quality_row_count(&self) -> usize
Sourcepub fn quality_selected_is_clean(&self) -> bool
pub fn quality_selected_is_clean(&self) -> bool
Whether the highlighted Overview entry is the clean-columns entry, which opens no rows and instead lists the checks.
Sourcepub fn selected_finding(&self) -> Option<(&QualityReport, Finding)>
pub fn selected_finding(&self) -> Option<(&QualityReport, Finding)>
The report on screen and the finding under the cursor, as Overview lists them: narrowed and ordered.
Sourcepub fn open_findings_picker(&mut self, by_column: bool)
pub fn open_findings_picker(&mut self, by_column: bool)
Narrow the findings to a column (by_column) or a check, from a list of
those the report has, the current one selected.
Sourcepub fn cycle_findings_order(&mut self)
pub fn cycle_findings_order(&mut self)
The next order for the findings, keeping the finding under the cursor under it.
Sourcepub fn clear_findings_narrowing(&mut self)
pub fn clear_findings_narrowing(&mut self)
Show every finding again, in the order chosen.
Sourcepub fn sample_key_opens_form(&self) -> bool
pub fn sample_key_opens_form(&self) -> bool
Whether s opens the Sample form: on a tool’s main view with nothing else
holding keys (run, popup, editor, text field).
Sourcepub fn export_typing(&self) -> bool
pub fn export_typing(&self) -> bool
Whether the export dialog’s path owns typed characters.
Sourcepub fn intent_typing(&self) -> bool
pub fn intent_typing(&self) -> bool
Whether a Column intent field owns typed characters, so Ctrl-C and ? type.
Sourcepub fn sample_scope_typing(&self) -> bool
pub fn sample_scope_typing(&self) -> bool
Whether the Sample form’s scope field owns typed characters, so Ctrl-C and ?
type.
Sourcepub fn quality_expected_typing(&self) -> bool
pub fn quality_expected_typing(&self) -> bool
Whether the Expected editor’s From or Before has the cursor, so all but its own keys type.
Sourcepub fn open_trend_detail(&mut self)
pub fn open_trend_detail(&mut self)
Open the bars of the Trends line under the cursor, the first bar selected.
Sourcepub fn cycle_trend_detail_metric(&mut self)
pub fn cycle_trend_detail_metric(&mut self)
The next measure in a bar’s detail, on the same column’s line. A column with nothing to draw in it has no line, and Trends lists what does.
Sourcepub fn close_to_trends(&mut self)
pub fn close_to_trends(&mut self)
Back to Trends from a bar detail or the gaps, the line still selected.
pub fn set_quality_page(&mut self, page: QualityPage)
Sourcepub fn set_quality_column_page(&mut self, page: QualityPage)
pub fn set_quality_column_page(&mut self, page: QualityPage)
Move between the column lens and its detail, keeping the selected column.
Sourcepub fn open_segment_detail(&mut self)
pub fn open_segment_detail(&mut self)
Open the highlighted segment’s columns, or go back to the list with the segment still selected.
pub fn close_segment_detail(&mut self)
Sourcepub fn segment_order(&self) -> Vec<usize>
pub fn segment_order(&self) -> Vec<usize>
The order Segments lists its rows in.
Sourcepub fn selected_segment(&self) -> Option<usize>
pub fn selected_segment(&self) -> Option<usize>
The segment under the cursor on Segments, whichever order it is listed in.
Sourcepub fn toggle_segment_order(&mut self)
pub fn toggle_segment_order(&mut self)
List segments in their own order or clearest change first, keeping the one under the cursor under it.
Sourcepub fn open_interval_detail(&mut self)
pub fn open_interval_detail(&mut self)
Open the highlighted interval’s detail, its first count under the cursor.
Sourcepub fn close_interval_detail(&mut self)
pub fn close_interval_detail(&mut self)
Back to the list, the interval still selected.
Sourcepub fn interval_facts(&self) -> Vec<IntervalFact>
pub fn interval_facts(&self) -> Vec<IntervalFact>
The counts an interval’s detail lists, each with rows it can open: those the interval measured, in the order the detail shows them.
Sourcepub fn selected_interval_fact(&self) -> Option<IntervalFact>
pub fn selected_interval_fact(&self) -> Option<IntervalFact>
The count under the cursor in an interval’s detail.
Sourcepub fn interval_evidence(
&self,
schema: Option<&Schema>,
) -> Option<(Expr, String, usize)>
pub fn interval_evidence( &self, schema: Option<&Schema>, ) -> Option<(Expr, String, usize)>
The rows behind the selected count in an interval’s detail, when its values
identify them: a predicate over the run’s rows, with a label. schema (where
known) lets a partition segment compare in its column’s type.
Sourcepub fn scroll_quality_detail(&mut self, rows: i32)
pub fn scroll_quality_detail(&mut self, rows: i32)
Move the finding popup by rows, within what it last drew.
Sourcepub fn show_quality_tab(&mut self, page: QualityPage)
pub fn show_quality_tab(&mut self, page: QualityPage)
Show a tab, keeping the column in view across Columns, Segments and Trends.
Sourcepub fn step_quality_tab(&mut self, forward: bool)
pub fn step_quality_tab(&mut self, forward: bool)
The next or previous tab, stopping at either end.
pub fn cycle_quality_metric(&mut self)
Sourcepub fn quality_result_plan(&self) -> &DataQualityPlan
pub fn quality_result_plan(&self) -> &DataQualityPlan
The plan the on-screen result was measured with (the plan until a run exists), so a draft never relabels what was measured.
Sourcepub fn quality_plan_pending(&self) -> bool
pub fn quality_plan_pending(&self) -> bool
The plan differs from the one the result on screen was measured with.
Sourcepub fn setup_edited(&self) -> bool
pub fn setup_edited(&self) -> bool
Whether Setup holds staged changes Esc would discard.
Sourcepub fn plan_choices(
&self,
row: SetupRow,
context: &PlanContext,
) -> Vec<(String, PlanChoice)>
pub fn plan_choices( &self, row: SetupRow, context: &PlanContext, ) -> Vec<(String, PlanChoice)>
The choices a Setup row offers, in the words the header uses.
Sourcepub fn open_plan_picker(&mut self, row: SetupRow, context: &PlanContext)
pub fn open_plan_picker(&mut self, row: SetupRow, context: &PlanContext)
Open the focused Setup row’s choices, the current one selected.
Sourcepub fn open_format_picker(&mut self, column: &str, examples: &[String])
pub fn open_format_picker(&mut self, column: &str, examples: &[String])
How column can be read as time: each format with how many of the on-screen
examples it reads, best first, and reading as text again when it has a format.
Sourcepub fn choose_plan_picker(&mut self) -> Option<String>
pub fn choose_plan_picker(&mut self) -> Option<String>
Take the picker’s selection into the plan and close it. Returns a text column chosen to read as time: its format is the next choice.
Sourcepub fn cycle_setup_choice(
&mut self,
row: SetupRow,
context: &PlanContext,
forward: bool,
)
pub fn cycle_setup_choice( &mut self, row: SetupRow, context: &PlanContext, forward: bool, )
The next or previous choice of a Setup row whose choices are a short list, in place: ←→ on Grain, Compare, Values, Latency and Window by.
pub fn cycle_quality_time_role( &mut self, role_index: usize, columns: &[String], forward: bool, )
Sourcepub fn move_row(&mut self, step: ListMove, rows: usize)
pub fn move_row(&mut self, step: ListMove, rows: usize)
Move the focused tool’s cursor by step in rows rows, ten to a page. The
correlation matrix moves its row, keeping its column; Home and End take the first
and last off-diagonal pair.
Sourcepub fn install_correlations(&mut self, results: AnalysisResults)
pub fn install_correlations(&mut self, results: AnalysisResults)
Install the matrix a run read. The cursor stays if still a cell, else starts on the first off-diagonal pair, where Enter opens a detail.
Sourcepub fn correlation_size(&self) -> usize
pub fn correlation_size(&self) -> usize
The number of columns in the correlation matrix on screen.
Sourcepub fn distribution_choices(&self) -> usize
pub fn distribution_choices(&self) -> usize
The families the distribution detail’s selector lists for the column under the cursor.
Sourcepub fn move_correlation_cell(&mut self, (rows, cols): (isize, isize))
pub fn move_correlation_cell(&mut self, (rows, cols): (isize, isize))
Move the correlation cursor by (rows, columns), stopping at edges; the matrix
scrolls to keep it in view as it draws.
pub fn next_distribution(&mut self)
pub fn previous_distribution(&mut self)
pub fn select_distribution(&mut self)
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for AnalysisModal
impl !RefUnwindSafe for AnalysisModal
impl !Sync for AnalysisModal
impl !UnwindSafe for AnalysisModal
impl Send for AnalysisModal
impl Unpin for AnalysisModal
impl UnsafeUnpin for AnalysisModal
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more