pub struct ErrorTemplate<'a> { /* private fields */ }Expand description
Parsed representation of an #[error("...")] template.
Templates are represented as a sequence of literal segments and placeholders. The structure mirrors the internal representation used by formatting machinery, but keeps the slices borrowed from the original input to avoid unnecessary allocations.
§Examples
use masterror_template::template::{ErrorTemplate, TemplateIdentifier};
let template = ErrorTemplate::parse("{code}: {message}").expect("parse");
let rendered = format!(
"{}",
template.display_with(|placeholder, f| match placeholder.identifier() {
TemplateIdentifier::Named("code") => write!(f, "{}", 404),
TemplateIdentifier::Named("message") => f.write_str("Not Found"),
_ => Ok(())
})
);
assert_eq!(rendered, "404: Not Found");Implementations§
Source§impl<'a> ErrorTemplate<'a>
impl<'a> ErrorTemplate<'a>
Sourcepub fn parse(source: &'a str) -> Result<Self, TemplateError>
pub fn parse(source: &'a str) -> Result<Self, TemplateError>
Parses an error display template.
Sourcepub fn segments(&self) -> &[TemplateSegment<'a>]
pub fn segments(&self) -> &[TemplateSegment<'a>]
Returns the parsed segments.
Sourcepub fn placeholders(&self) -> impl Iterator<Item = &TemplatePlaceholder<'a>>
pub fn placeholders(&self) -> impl Iterator<Item = &TemplatePlaceholder<'a>>
Iterates over placeholder segments in order of appearance.
Sourcepub fn display_with<F>(&'a self, resolver: F) -> DisplayWith<'a, 'a, F>
pub fn display_with<F>(&'a self, resolver: F) -> DisplayWith<'a, 'a, F>
Produces a display implementation that delegates placeholder rendering to the provided resolver.
Trait Implementations§
Source§impl<'a> Clone for ErrorTemplate<'a>
impl<'a> Clone for ErrorTemplate<'a>
Source§fn clone(&self) -> ErrorTemplate<'a>
fn clone(&self) -> ErrorTemplate<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'a> Debug for ErrorTemplate<'a>
impl<'a> Debug for ErrorTemplate<'a>
Source§impl<'a> PartialEq for ErrorTemplate<'a>
impl<'a> PartialEq for ErrorTemplate<'a>
impl<'a> Eq for ErrorTemplate<'a>
impl<'a> StructuralPartialEq for ErrorTemplate<'a>
Auto Trait Implementations§
impl<'a> Freeze for ErrorTemplate<'a>
impl<'a> RefUnwindSafe for ErrorTemplate<'a>
impl<'a> Send for ErrorTemplate<'a>
impl<'a> Sync for ErrorTemplate<'a>
impl<'a> Unpin for ErrorTemplate<'a>
impl<'a> UnwindSafe for ErrorTemplate<'a>
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
Mutably borrows from an owned value. Read more