#[non_exhaustive]pub struct RenderOptions<'a> {
pub formatter: &'a dyn MessageFormatter,
pub snippets: SnippetMode,
pub line_offset: u64,
pub source_name: Option<&'a str>,
}Expand description
Options for deferred error rendering.
Construct this via the render_options! macro:
use serde_saphyr::{DefaultMessageFormatter, SnippetMode};
let dev = DefaultMessageFormatter;
// Customize how an error is rendered later (formatter + snippet mode).
let render_opts = serde_saphyr::render_options! {
formatter: &dev,
snippets: SnippetMode::Off,
};
let err = serde_saphyr::from_str::<String>("").unwrap_err();
let rendered = err.render_with_options(render_opts);
assert!(rendered.contains("unexpected"));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.formatter: &'a dyn MessageFormatterMessage formatter used to produce the core error message text.
snippets: SnippetModeSnippet rendering mode.
line_offset: u64Number of lines preceding the root YAML input in its containing document.
For YAML extracted from a larger document, set line_offset to the number of
preceding lines. This example displays the first YAML line as line 10000:
let yaml = "eighty\n";
let err = serde_saphyr::from_str::<u16>(yaml).unwrap_err();
let options = serde_saphyr::render_options! {
line_offset: 9_999,
source_name: Some("article.md"),
};
let rendered = err.render_with_options(options);
assert!(rendered.contains("article.md:10000:1"));
assert_eq!(err.location().unwrap().line(), 1);source_name: Option<&'a str>Display name for the root YAML source in snippet headers.
Defaults to None, preserving the recorded source names. Some(name)
overrides the root name, including miette’s file argument, while included
sources keep their own names. The name is borrowed and escaped for display;
an empty name is used verbatim. Stored error data is unchanged.
Plain messages have no source-name headers, so this option has no effect when snippets are disabled or unavailable.
Implementations§
Source§impl<'a> RenderOptions<'a>
impl<'a> RenderOptions<'a>
Sourcepub fn new(formatter: &'a dyn MessageFormatter) -> Self
pub fn new(formatter: &'a dyn MessageFormatter) -> Self
Construct render options with the given message formatter and default values
for all other fields.
Defaults:
snippets:SnippetMode::Autoline_offset:0source_name:None
Trait Implementations§
Source§impl<'a> Clone for RenderOptions<'a>
impl<'a> Clone for RenderOptions<'a>
Source§fn clone(&self) -> RenderOptions<'a>
fn clone(&self) -> RenderOptions<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more