use std::fmt::Display;
pub type InvalidConfigError = Box<dyn Display>;
pub struct FormattedConfigError {
func: Box<dyn Fn() -> String>,
}
impl FormattedConfigError {
#[allow(clippy::new_ret_no_self)]
pub fn new<F: Fn() -> String + 'static>(func: F) -> Box<dyn Display> {
Box::new(Self {
func: Box::new(func),
})
}
}
impl Display for FormattedConfigError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let string = (self.func)();
write!(f, "{string}")
}
}