33 lines
1 KiB
Rust
33 lines
1 KiB
Rust
|
//
|
||
|
// use kxio::net::Response;
|
||
|
//
|
||
|
// use crate::{e, s};
|
||
|
|
||
|
// pub struct APIResult<T> {
|
||
|
// pub text: String,
|
||
|
// pub result: Result<T, kxio::net::Error>,
|
||
|
// }
|
||
|
|
||
|
// impl<T: for<'a> serde::Deserialize<'a>> APIResult<T> {
|
||
|
// pub async fn new(response: kxio::net::Result<Response>) -> Self {
|
||
|
// match response {
|
||
|
// Ok(response) => {
|
||
|
// let text = response.text().await.unwrap_or_default();
|
||
|
// let text = if text.is_empty() { s!("null") } else { text };
|
||
|
// let result = serde_json::from_str::<T>(&text)
|
||
|
// .map_err(|e| e.to_string())
|
||
|
// .map_err(|e| {
|
||
|
// e!("{e}: {text}");
|
||
|
// e
|
||
|
// })
|
||
|
// .map_err(kxio::net::Error::from);
|
||
|
// Self { text, result }
|
||
|
// }
|
||
|
// Err(e) => Self {
|
||
|
// text: s!(""),
|
||
|
// result: Err(e),
|
||
|
// },
|
||
|
// }
|
||
|
// }
|
||
|
// }
|