// // use kxio::net::Response; // // use crate::{e, s}; // pub struct APIResult { // pub text: String, // pub result: Result, // } // impl serde::Deserialize<'a>> APIResult { // pub async fn new(response: kxio::net::Result) -> 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::(&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), // }, // } // } // }