use std::{convert::Infallible, sync::Arc};
use serde::{Deserialize, Serialize};
use crate::document::ApiDocument;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub struct ApiErrorItem {
pub status: u16,
pub code: String,
pub cause: String,
}
pub trait ApiErrors {
fn api_errors() -> Vec<ApiErrorItem>;
}
impl ApiErrors for Infallible {
fn api_errors() -> Vec<ApiErrorItem> {
vec![]
}
}
impl<T: ApiErrors> ApiErrors for Arc<T> {
fn api_errors() -> Vec<ApiErrorItem> {
T::api_errors()
}
}
impl ApiErrors for ApiDocument {
fn api_errors() -> Vec<ApiErrorItem> {
vec![]
}
}