pub struct SerializerOptions {
pub empty_as_braces: bool,
pub indent_step: usize,
pub anchor_generator: Option<fn(usize) -> String>,
pub min_fold_chars: usize,
pub folded_wrap_chars: usize,
pub tagged_enums: bool,
pub prefer_block_scalars: bool,
pub quote_all: bool,
pub yaml_12: bool,
}Expand description
Serializer options for YAML emission.
This struct controls various aspects of YAML serialization, such as indentation, anchor generation, and scalar styles.
Construct SerializerOptions using the ser_options!
macro to ensure compatibility with future updates.
use serde::Serialize;
use serde_saphyr::{ser_options, to_string_with_options};
#[derive(Serialize)]
struct Config {
name: String,
values: Vec<i32>,
}
let config = Config {
name: "test".to_string(),
values: vec![1, 2, 3],
};
// Use 4-space indentation and quote all strings
let options = ser_options! {
indent_step: 4,
quote_all: true,
};
let yaml = to_string_with_options(&config, options).unwrap();Fields§
§empty_as_braces: boolIf true, empty maps are emitted as braces {} and empty lists as [] (this is the default). Such form is equally valid YAML, allows to tell empty from null and may be easier for a human to grasp.
indent_step: usizeNumber of spaces to indent per nesting level when emitting block-style collections (2 by default). 0 value is invalid and will result and error when trying to deserialize, because no indentation would produce invalid YAML otherwise.
anchor_generator: Option<fn(usize) -> String>Optional custom anchor-name generator.
Receives a monotonically increasing usize id (starting at 1) and returns the
anchor name to emit. If None, the built-in generator yields names like a1, a2, …
min_fold_chars: usizeThreshold for block-string wrappers (crate::LitStr/crate::FoldStr and owned variants crate::LitString/crate::FoldString).
If the string contains a newline, block style is always used. Otherwise, when the
string is single-line and its length is strictly less than this threshold, the
serializer emits a normal YAML scalar (no block style). Longer strings use block
styles | or > depending on the wrapper. See the type docs for
crate::LitStr, crate::FoldStr, crate::LitString and crate::FoldString for
examples.
folded_wrap_chars: usizeMaximum width (in characters) for lines in folded block scalars (>).
Lines are wrapped only at whitespace so that each emitted line is at most this many characters long (excluding indentation). If no whitespace is present within the limit (e.g., a single long token), the line is emitted unwrapped to preserve round-trip correctness: YAML folded scalars typically fold inserted newlines back as spaces when parsing. 32 default.
tagged_enums: boolWhen enabled, serialize simple enums that become a single scalar (unit variants)
using YAML tags, e.g. !!Enum Variant instead of a plain scalar Variant.
Deserializer does not need this setting as both cases will be understood. Off by default.
prefer_block_scalars: boolWhen enabled, strings containing more than folded_wrap_chars (80 by default) are written in wrapped multistring folded form (>), and strings containing new lines are written in literal form (|), selecting format depending on the number of empty lines at the end. On by default.
quote_all: boolWhen enabled, quote all string scalars. Uses single quotes by default,
but switches to double quotes when the string contains escape sequences
(control characters like \n, \t, \r, backslash) or single quotes.
Disables block scalar styles (| and >) for quoted strings when active.
Off by default.
yaml_12: boolWhen enabled, emit %YAML 1.2 at the beginning of the document and
use YAML 1.2 rules for certain compatibility heuristics.
In particular, YAML 1.1 boolean spellings like yes/no/on/off/y/n
will not be treated as booleans for the purpose of auto-quoting. In cases
like multiple x, y coordinates quoting y may be very annoying.
Default: false.
Trait Implementations§
Source§impl Clone for SerializerOptions
impl Clone for SerializerOptions
Source§fn clone(&self) -> SerializerOptions
fn clone(&self) -> SerializerOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for SerializerOptions
impl Default for SerializerOptions
impl Copy for SerializerOptions
Auto Trait Implementations§
impl Freeze for SerializerOptions
impl RefUnwindSafe for SerializerOptions
impl Send for SerializerOptions
impl Sync for SerializerOptions
impl Unpin for SerializerOptions
impl UnwindSafe for SerializerOptions
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<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