use dioxus_mdx::OpenApiError;
#[derive(Debug)]
pub enum DocsKitError {
NavParse(serde_json::Error),
BlogManifestParse(serde_json::Error),
OpenApi {
prefix: String,
error: OpenApiError,
},
}
impl std::fmt::Display for DocsKitError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::NavParse(e) => write!(f, "failed to parse _nav.json: {e}"),
Self::BlogManifestParse(e) => write!(f, "failed to parse _blog.json: {e}"),
Self::OpenApi { prefix, error } => write!(
f,
"failed to parse OpenAPI spec for prefix \"{prefix}\": {error}"
),
}
}
}
impl std::error::Error for DocsKitError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
match self {
Self::NavParse(e) | Self::BlogManifestParse(e) => Some(e),
Self::OpenApi { error, .. } => Some(error),
}
}
}