use serde::de::DeserializeOwned;
use crate::{ApiResult, Json, ResponseBody, Xml};
#[derive(Debug)]
pub struct Auto;
impl Auto {
pub fn try_parse<T>(body: ResponseBody) -> ApiResult<T>
where
T: 'static + DeserializeOwned,
{
match &body {
ResponseBody::Json(_) => Json::try_parse(body),
ResponseBody::Xml(_) => Xml::try_parse(body),
ResponseBody::Text(_) => {
Json::try_parse(body.clone()).or_else(|_| Xml::try_parse(body))
}
}
}
}