asset_importer_rs_post_process/
error.rs1use std::{error::Error, fmt::Display};
2
3#[cfg(feature = "flip-uvs")]
4use crate::steps::flip_uvs::FlipUVsError;
5#[cfg(feature = "gen-normals")]
6use crate::steps::gen_normals::GenNormalsError;
7#[cfg(feature = "gen-smooth-normals")]
8use crate::steps::gen_smooth_normals::GenSmoothNormalsError;
9
10#[non_exhaustive]
11#[derive(Debug)]
12pub enum AiPostProcessError {
13 #[cfg(feature = "gen-normals")]
14 GenNormalsError(GenNormalsError),
15 #[cfg(feature = "gen-smooth-normals")]
16 GenSmoothNormalsError(GenSmoothNormalsError),
17 #[cfg(feature = "flip-uvs")]
18 FlipUVsError(FlipUVsError),
19
20 PostProcessError(String),
21}
22
23impl Display for AiPostProcessError {
24 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
25 match self {
26 AiPostProcessError::PostProcessError(error) => write!(f, "PostProcessError: {}", error),
27 #[cfg(feature = "gen-normals")]
28 AiPostProcessError::GenNormalsError(error) => write!(f, "GenNormalsError: {}", error),
29 #[cfg(feature = "gen-smooth-normals")]
30 AiPostProcessError::GenSmoothNormalsError(error) => {
31 write!(f, "GenSmoothNormalsError: {}", error)
32 }
33 #[cfg(feature = "flip-uvs")]
34 AiPostProcessError::FlipUVsError(error) => {
35 write!(f, "FlipUVsError: {}", error)
36 }
37 }
38 }
39}
40impl Error for AiPostProcessError {}
41
42impl From<String> for AiPostProcessError {
43 fn from(error: String) -> Self {
44 AiPostProcessError::PostProcessError(error)
45 }
46}
47
48#[cfg(feature = "flip-uvs")]
49impl From<FlipUVsError> for AiPostProcessError {
50 fn from(error: FlipUVsError) -> Self {
51 AiPostProcessError::FlipUVsError(error)
52 }
53}
54
55#[cfg(feature = "gen-normals")]
56impl From<GenNormalsError> for AiPostProcessError {
57 fn from(error: GenNormalsError) -> Self {
58 AiPostProcessError::PostProcessError(error.to_string())
59 }
60}
61
62#[cfg(feature = "gen-smooth-normals")]
63impl From<GenSmoothNormalsError> for AiPostProcessError {
64 fn from(error: GenSmoothNormalsError) -> Self {
65 AiPostProcessError::PostProcessError(error.to_string())
66 }
67}