use std::fmt::{self, Write};
use sealed::sealed;
#[sealed(pub(crate))]
pub trait ErrorDisplay {
fn full_display(&self, f: &mut impl Write) -> fmt::Result;
fn brief_display(&self, f: &mut impl Write) -> fmt::Result {
self.full_display(f)
}
fn human_readable_display(&self, f: &mut impl Write) -> fmt::Result {
self.brief_display(f)
}
fn full_stringify(&self) -> String {
let mut s = String::new();
self.full_display(&mut s).unwrap();
s
}
fn brief_stringify(&self) -> String {
let mut s = String::new();
self.brief_display(&mut s).unwrap();
s
}
fn human_readable_stringify(&self) -> String {
let mut s = String::new();
self.human_readable_display(&mut s).unwrap();
s
}
}