use crate::html::{html, Markup};
use crate::{AutoDefault, Getters};
#[derive(AutoDefault, Debug, Getters)]
pub struct ComponentError {
message: String,
fallback: Markup,
}
impl ComponentError {
pub fn new(message: impl Into<String>) -> Self {
ComponentError {
message: message.into(),
fallback: html! {},
}
}
pub fn with_fallback(mut self, fallback: Markup) -> Self {
self.fallback = fallback;
self
}
pub(crate) fn into_fallback(self) -> Markup {
self.fallback
}
}
impl std::fmt::Display for ComponentError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.message)
}
}
impl std::error::Error for ComponentError {}