44 lines
1.3 KiB
Rust
44 lines
1.3 KiB
Rust
use std::fmt::Display;
|
|
|
|
/**
|
|
* Custom error
|
|
*/
|
|
#[derive(Debug)]
|
|
pub enum SegDenseError {
|
|
IoError(std::io::Error),
|
|
Json(serde_json::Error),
|
|
JsonMissingRoot,
|
|
JsonMissingObject,
|
|
JsonMissingArray,
|
|
JsonArraySize,
|
|
JsonMissingInputFeature,
|
|
}
|
|
|
|
impl Display for SegDenseError {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
match self {
|
|
SegDenseError::IoError(io_error) => write!(f, "{}", io_error),
|
|
SegDenseError::Json(serde_json) => write!(f, "{}", serde_json),
|
|
SegDenseError::JsonMissingRoot => write!(f, "{}", "SegDense JSON: Root Node note found!"),
|
|
SegDenseError::JsonMissingObject => write!(f, "{}", "SegDense JSON: Object note found!"),
|
|
SegDenseError::JsonMissingArray => write!(f, "{}", "SegDense JSON: Array Node note found!"),
|
|
SegDenseError::JsonArraySize => write!(f, "{}", "SegDense JSON: Array size not as expected!"),
|
|
SegDenseError::JsonMissingInputFeature => write!(f, "{}", "SegDense JSON: Missing input feature!"),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl std::error::Error for SegDenseError {}
|
|
|
|
impl From<std::io::Error> for SegDenseError {
|
|
fn from(err: std::io::Error) -> Self {
|
|
SegDenseError::IoError(err)
|
|
}
|
|
}
|
|
|
|
impl From<serde_json::Error> for SegDenseError {
|
|
fn from(err: serde_json::Error) -> Self {
|
|
SegDenseError::Json(err)
|
|
}
|
|
}
|