diff --git a/jm_client_core/src/client.rs b/jm_client_core/src/client.rs index 2afd541..f91c225 100644 --- a/jm_client_core/src/client.rs +++ b/jm_client_core/src/client.rs @@ -2,7 +2,7 @@ use crate::api::{Category, CatsResp, Meme, MemesResp, User, UsersResp}; use log::info; use once_cell::sync::OnceCell; use reqwest::Url; -use serde::de::DeserializeOwned; +use serde::Deserialize; use std::sync::Arc; use thiserror::Error; use tokio::sync::Mutex; @@ -36,12 +36,16 @@ impl JMClient { JMClientBuilder::default() } - async fn get_api_json T>( + async fn get_api_json( &self, cache: &OnceCell>, endpoint: &str, res_to_data: F, - ) -> Result, JMClientError> { + ) -> Result, JMClientError> + where + for<'de> R: Deserialize<'de>, + F: FnOnce(R) -> T, + { Ok(init_cache!(cache, { info!("Requesting {} from server", endpoint); let url = self.endpoint.join(endpoint)?;