#[non_exhaustive]pub struct RenderSettings {Show 24 fields
pub format: OutputFormat,
pub format_explicit: bool,
pub mode: RenderMode,
pub color: ColorMode,
pub unicode: UnicodeMode,
pub width: Option<usize>,
pub margin: usize,
pub indent_size: usize,
pub short_list_max: usize,
pub medium_list_max: usize,
pub grid_padding: usize,
pub grid_columns: Option<usize>,
pub column_weight: usize,
pub table_overflow: TableOverflow,
pub table_border: TableBorderStyle,
pub help_chrome: HelpChromeSettings,
pub mreg_stack_min_col_width: usize,
pub mreg_stack_overflow_ratio: usize,
pub theme_name: String,
pub style_overrides: StyleOverrides,
pub chrome_frame: SectionFrameStyle,
pub ruled_section_policy: RuledSectionPolicy,
pub guide_default_format: GuideDefaultFormat,
pub runtime: RenderRuntime,
/* private fields */
}Expand description
User-configurable settings for rendering CLI output.
This is the durable caller-facing render policy. format, mode, color,
and unicode express caller intent; runtime supplies the terminal facts
used when any of those stay on Auto. Most embedders should start with
RenderSettings::builder, while tests and deterministic snapshots should
usually start with RenderSettings::test_plain.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.format: OutputFormatPreferred output format.
format_explicit: boolWhether format was chosen explicitly by the caller.
mode: RenderModePreferred rendering mode.
color: ColorModeColor behavior selection.
unicode: UnicodeModeUnicode behavior selection.
width: Option<usize>Explicit width override for rendering.
margin: usizeLeft margin applied to rendered blocks.
indent_size: usizeIndentation width used for nested structures.
short_list_max: usizeMaximum list length rendered in compact form.
medium_list_max: usizeMaximum list length rendered in medium form before expanding further.
grid_padding: usizeHorizontal padding between grid columns.
grid_columns: Option<usize>Explicit grid column count override.
column_weight: usizeRelative weighting for adaptive grid columns.
table_overflow: TableOverflowOverflow policy for table cells.
table_border: TableBorderStyleBorder style for general table rendering.
help_chrome: HelpChromeSettingsHelp/guide-specific chrome settings.
mreg_stack_min_col_width: usizeMinimum width before stacked MREG columns are used.
mreg_stack_overflow_ratio: usizeThreshold controlling when MREG content overflows into stacked mode.
theme_name: StringSelected theme name.
style_overrides: StyleOverridesPer-token style overrides layered on top of the theme.
chrome_frame: SectionFrameStyleSection frame style used for grouped chrome.
ruled_section_policy: RuledSectionPolicyPlacement policy for ruled section separators across sibling sections.
guide_default_format: GuideDefaultFormatFallback behavior for semantic guide output.
runtime: RenderRuntimeRuntime terminal facts used during auto-resolution.
Implementations§
Source§impl RenderSettings
impl RenderSettings
Sourcepub fn resolve_render_settings(&self) -> ResolvedRenderSettings
pub fn resolve_render_settings(&self) -> ResolvedRenderSettings
Resolves terminal-aware rendering settings from the configured preferences.
Plain mode is a strict fallback: once selected, the resolved settings will not emit ANSI color or Unicode box-drawing even if the runtime can.
§Examples
use osp_cli::core::output::{ColorMode, OutputFormat, RenderMode, UnicodeMode};
use osp_cli::ui::{RenderBackend, RenderSettings};
let mut settings = RenderSettings::test_plain(OutputFormat::Json);
settings.mode = RenderMode::Auto;
settings.color = ColorMode::Always;
settings.unicode = UnicodeMode::Always;
let resolved = settings.resolve_render_settings();
assert_eq!(resolved.backend, RenderBackend::Rich);
assert!(resolved.color);
assert!(resolved.unicode);Source§impl RenderSettings
impl RenderSettings
Sourcepub fn builder() -> RenderSettingsBuilder
pub fn builder() -> RenderSettingsBuilder
Starts building render settings from the default UI baseline.
Prefer this for real caller-facing render policy. For deterministic
docs/tests, RenderSettings::test_plain is usually a better starting
point because it disables ANSI and rich terminal inference up front.
Sourcepub fn test_plain(format: OutputFormat) -> Self
pub fn test_plain(format: OutputFormat) -> Self
Shared plain-mode baseline for deterministic tests and examples.
This keeps docs and tests from duplicating a large struct literal every time they need a stable no-color rendering baseline.
§Examples
use osp_cli::core::output::OutputFormat;
use osp_cli::ui::{RenderBackend, RenderSettings};
let resolved = RenderSettings::test_plain(OutputFormat::Json)
.resolve_render_settings();
assert_eq!(resolved.backend, RenderBackend::Plain);
assert!(!resolved.color);
assert!(!resolved.unicode);Sourcepub fn prefers_guide_rendering(&self) -> bool
pub fn prefers_guide_rendering(&self) -> bool
Returns whether guide output should be preferred for the current settings.
This only falls back to guide mode when the caller did not explicitly request another format.
§Examples
use osp_cli::core::output::OutputFormat;
use osp_cli::ui::{GuideDefaultFormat, RenderSettings};
let mut settings = RenderSettings::test_plain(OutputFormat::Auto);
settings.format_explicit = false;
settings.guide_default_format = GuideDefaultFormat::Guide;
assert!(settings.prefers_guide_rendering());
settings.format_explicit = true;
settings.format = OutputFormat::Json;
assert!(!settings.prefers_guide_rendering());Trait Implementations§
Source§impl Clone for RenderSettings
impl Clone for RenderSettings
Source§fn clone(&self) -> RenderSettings
fn clone(&self) -> RenderSettings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RenderSettings
impl Debug for RenderSettings
Auto Trait Implementations§
impl Freeze for RenderSettings
impl RefUnwindSafe for RenderSettings
impl Send for RenderSettings
impl Sync for RenderSettings
impl Unpin for RenderSettings
impl UnsafeUnpin for RenderSettings
impl UnwindSafe for RenderSettings
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> DowncastSync for T
impl<T> DowncastSync for T
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