pub mod __private;
pub mod request;
pub mod result_code;
pub mod unverified;
pub mod verify;
use serde::de::DeserializeOwned;
use result_code::ResultCode;
use crate::error::ApiError;
pub trait RequestResult: DeserializeOwned {
fn code(&self) -> ResultCode;
fn message(&self) -> &str;
}
pub type ApiResult<T> = Result<T, ApiError>;
impl<R: RequestResult> From<__private::ApiResult<R>> for ApiResult<R> {
fn from(value: __private::ApiResult<R>) -> Self {
match value.data {
__private::WiredOption::Some(data) => Ok(data),
__private::WiredOption::None => match value.errors {
__private::WiredOption::Some(errors) => Err(errors),
__private::WiredOption::None => unreachable!(),
},
}
}
}