pub mod conversation;
mod error;
pub mod login;
mod util;
mod xiaoai;
pub use ::time;
pub mod json {
pub use serde_json::*;
}
use serde::{Deserialize, Serialize, de::DeserializeOwned};
use serde_json::Value;
pub use error::*;
pub use xiaoai::*;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct XiaoaiResponse<T = Value> {
pub code: i64,
pub message: String,
pub data: T,
}
impl XiaoaiResponse {
pub fn error_for_code(self) -> crate::Result<Self> {
if self.code == 0 {
Ok(self)
} else {
Err(crate::Error::Api(self))
}
}
pub fn extract_data<T: DeserializeOwned>(self) -> crate::Result<T> {
Ok(serde_json::from_value(self.data)?)
}
}