workerd 0.1.5

personal assistant running on local machine
use serde::Serialize;
#[derive(Serialize, Debug, Clone)]
pub struct ApiResponse<T: Serialize> {
    pub code: String,
    pub message: String,
    pub data: Option<Box<T>>,
}

impl<T: Serialize> ApiResponse<T> {
    pub fn ok(data: Box<T>) -> ApiResponse<T> {
        ApiResponse {
            code: "200".into(),
            message: String::from("success"),
            data: Some(data),
        }
    }
    pub fn fail(code: String, msg: Option<String>) -> ApiResponse<String> {
        ApiResponse {
            code,
            message: match msg {
                Some(msg) => msg,
                _ => "".into(),
            },
            data: None,
        }
    }
}