1use dioxus_mdx::OpenApiError;
4
5#[derive(Debug)]
8pub enum DocsKitError {
9 NavParse(serde_json::Error),
11 BlogManifestParse(serde_json::Error),
13 OpenApi {
15 prefix: String,
17 error: OpenApiError,
19 },
20}
21
22impl std::fmt::Display for DocsKitError {
23 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
24 match self {
25 Self::NavParse(e) => write!(f, "failed to parse _nav.json: {e}"),
26 Self::BlogManifestParse(e) => write!(f, "failed to parse _blog.json: {e}"),
27 Self::OpenApi { prefix, error } => write!(
28 f,
29 "failed to parse OpenAPI spec for prefix \"{prefix}\": {error}"
30 ),
31 }
32 }
33}
34
35impl std::error::Error for DocsKitError {
36 fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
37 match self {
38 Self::NavParse(e) | Self::BlogManifestParse(e) => Some(e),
39 Self::OpenApi { error, .. } => Some(error),
40 }
41 }
42}