live2d_parser/errors/
mod.rs

1use serde::{Deserialize, Serialize};
2use std::{
3    error::Error,
4    fmt::{Debug, Display, Formatter},
5};
6
7mod convert;
8
9#[derive(Debug, Serialize, Deserialize)]
10pub enum L2Error {
11    EncodeError { format: String, message: String },
12    OutOfBounds { rest: usize, request: usize },
13    UnknownType { type_id: u32 },
14    UnimplementedSchema { schema: String, version: String },
15    UnknownError {},
16}
17
18impl Error for L2Error {}
19
20impl Display for L2Error {
21    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
22        match self {
23            L2Error::OutOfBounds { rest, request } => {
24                f.write_str(&format!("Out of bounds: rest={}, request={}", rest, request))
25            }
26            L2Error::EncodeError { format, message } => {
27                f.write_str(&format!("Encode error: format={}, message={}", format, message))
28            }
29            L2Error::UnimplementedSchema { schema, version } => {
30                f.write_str(&format!("Unsupported version: schema={}, version={}", schema, version))
31            }
32            L2Error::UnknownType { type_id } => f.write_str(&format!("Unknown type: type_id={}", type_id)),
33            L2Error::UnknownError {} => f.write_str(""),
34        }
35    }
36}