live2d_parser/errors/
mod.rs1use 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}