use std::fmt;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ObjError {
MissingVertices,
MissingFaces,
InvalidVertex,
NonFiniteVertex,
NonTriangularFace,
InvalidIndex,
IndexOutOfBounds,
UnsupportedStatement,
}
impl fmt::Display for ObjError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let message = match self {
Self::MissingVertices => "OBJ source contains no vertex records",
Self::MissingFaces => "OBJ source contains no face records",
Self::InvalidVertex => "OBJ vertex coordinate is invalid",
Self::NonFiniteVertex => "OBJ vertex coordinate is not finite",
Self::NonTriangularFace => "OBJ face is not triangular",
Self::InvalidIndex => "OBJ face index is invalid",
Self::IndexOutOfBounds => "OBJ index is out of bounds",
Self::UnsupportedStatement => "OBJ statement is unsupported",
};
f.write_str(message)
}
}
impl std::error::Error for ObjError {}