1use std::fmt;
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5pub enum ObjError {
6 MissingVertices,
8 MissingFaces,
10 InvalidVertex,
12 NonFiniteVertex,
14 NonTriangularFace,
16 InvalidIndex,
18 IndexOutOfBounds,
20 UnsupportedStatement,
22}
23
24impl fmt::Display for ObjError {
25 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26 let message = match self {
27 Self::MissingVertices => "OBJ source contains no vertex records",
28 Self::MissingFaces => "OBJ source contains no face records",
29 Self::InvalidVertex => "OBJ vertex coordinate is invalid",
30 Self::NonFiniteVertex => "OBJ vertex coordinate is not finite",
31 Self::NonTriangularFace => "OBJ face is not triangular",
32 Self::InvalidIndex => "OBJ face index is invalid",
33 Self::IndexOutOfBounds => "OBJ index is out of bounds",
34 Self::UnsupportedStatement => "OBJ statement is unsupported",
35 };
36 f.write_str(message)
37 }
38}
39
40impl std::error::Error for ObjError {}