1use std::fmt;
2use std::error;
3
4#[derive(Debug)]
5pub enum TableError {
6 NonRenderableField(String),
7 InvalidFieldName(String),
8}
9
10impl fmt::Display for TableError {
11 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
12 let msg = match self {
13 TableError::InvalidFieldName(field_name) => format!("Invalid field name given: '{}'.", field_name),
14 TableError::NonRenderableField(field_name) => format!("Could not render field '{}' for which no HTML representation is defined.", field_name),
15 };
16 write!(f, "{}", msg)
17 }
18}
19
20impl error::Error for TableError {
21 fn source(&self) -> Option<&(dyn error::Error + 'static)> {
22 None
23 }
24
25 fn description(&self) -> &str {
26 match self {
27 TableError::InvalidFieldName(_) => "Invalid field name given.",
28 TableError::NonRenderableField(_) => "Field has no HTML representation defined.",
29 }
30 }
31}
32
33pub type Result<T> = std::result::Result<T, TableError>;