CoolFace
Apppublic

devin15/cursor2api-rust

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
models.rs72 linesDownload Raw Back to common
1pub mod error;2pub mod health;3pub mod config;4pub mod userinfo;5 6use config::ConfigData;7 8use serde::Serialize;9 10#[derive(Serialize)]11pub enum ApiStatus {12    #[serde(rename = "healthy")]13    Healthy,14    #[serde(rename = "success")]15    Success,16    #[serde(rename = "error")]17    Error,18    #[serde(rename = "failed")]19    Failed,20}21 22// #[derive(Serialize)]23// #[serde(untagged)]24// pub enum ApiResponse {25//     HealthCheck(HealthCheckResponse),26//     ConfigData(NormalResponse<ConfigData>),27//     Error(ErrorResponse),28// }29 30// impl ApiResponse {31//     pub fn to_string(&self) -> String {32//         serde_json::to_string(self).unwrap()33//     }34// }35 36#[derive(Serialize)]37pub struct NormalResponse<T> {38    pub status: ApiStatus,39    #[serde(skip_serializing_if = "Option::is_none")]40    pub data: Option<T>,41    #[serde(skip_serializing_if = "Option::is_none")]42    pub message: Option<String>,43}44 45impl std::fmt::Display for NormalResponse<ConfigData> {46    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {47        write!(f, "{}", serde_json::to_string(self).unwrap())48    }49}50 51#[derive(Serialize)]52pub struct NormalResponseNoData {53    pub status: ApiStatus,54    #[serde(skip_serializing_if = "Option::is_none")]55    pub message: Option<String>,56}57 58#[derive(Serialize)]59pub struct ErrorResponse {60    // status -> 成功 / 失败61    pub status: ApiStatus,62    // HTTP 请求的状态码63    #[serde(skip_serializing_if = "Option::is_none")]64    pub code: Option<u16>,65    // HTTP 请求的错误码66    #[serde(skip_serializing_if = "Option::is_none")]67    pub error: Option<String>,68    // 错误详情69    #[serde(skip_serializing_if = "Option::is_none")]70    pub message: Option<String>,71}72