1use thiserror::Error;
2
3#[derive(Error, Debug, Clone, PartialEq)]
5pub enum DracoError {
6 #[error("General error: {0}")]
8 DracoError(String),
9 #[error("IO error: {0}")]
11 IoError(String),
12 #[error("Invalid parameter: {0}")]
14 InvalidParameter(String),
15 #[error("Unsupported version: {0}")]
17 UnsupportedVersion(String),
18 #[error("Unknown version: {0}")]
20 UnknownVersion(String),
21 #[error("Unsupported feature: {0}")]
23 UnsupportedFeature(String),
24 #[error("Bitstream version unsupported")]
26 BitstreamVersionUnsupported,
27 #[error("Buffer decode error: {0}")]
29 BufferError(String),
30}
31
32pub type Status = Result<(), DracoError>;
34
35impl From<()> for DracoError {
36 fn from(_: ()) -> Self {
37 DracoError::DracoError("Unknown error".to_string())
38 }
39}
40
41pub fn ok_status() -> Status {
43 Ok(())
44}
45
46pub fn error_status(msg: impl Into<String>) -> DracoError {
48 DracoError::DracoError(msg.into())
49}