mirror of
https://github.com/aljazceru/cdk.git
synced 2026-02-12 00:26:29 +01:00
Minor improvement cache avoid clone (#479)
Avoid cloning to serialize to JSON; instead, dereference the object, as Serde needs a reference to the object.
This commit is contained in:
@@ -26,7 +26,9 @@ macro_rules! post_cache_wrapper {
|
||||
state: State<MintState>,
|
||||
payload: Json<$request_type>
|
||||
) -> Result<Json<$response_type>, Response> {
|
||||
let Json(json_extracted_payload) = payload.clone();
|
||||
use std::ops::Deref;
|
||||
|
||||
let json_extracted_payload = payload.deref();
|
||||
let State(mint_state) = state.clone();
|
||||
let cache_key = serde_json::to_string(&json_extracted_payload).map_err(|err| {
|
||||
into_response(Error::from(err))
|
||||
@@ -37,11 +39,11 @@ macro_rules! post_cache_wrapper {
|
||||
.expect("Shouldn't panic: response is json-deserializable.")));
|
||||
}
|
||||
|
||||
let Json(response) = $handler(state, payload).await?;
|
||||
mint_state.cache.insert(cache_key, serde_json::to_string(&response)
|
||||
let response = $handler(state, payload).await?;
|
||||
mint_state.cache.insert(cache_key, serde_json::to_string(response.deref())
|
||||
.expect("Shouldn't panic: response is json-serializable.")
|
||||
).await;
|
||||
Ok(Json(response))
|
||||
Ok(response)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -54,12 +54,7 @@ impl WsHandle for Method {
|
||||
return Err(WsError::InvalidParams);
|
||||
}
|
||||
|
||||
let mut subscription = context
|
||||
.state
|
||||
.mint
|
||||
.pubsub_manager
|
||||
.subscribe(self.0.clone())
|
||||
.await;
|
||||
let mut subscription = context.state.mint.pubsub_manager.subscribe(self.0).await;
|
||||
let publisher = context.publisher.clone();
|
||||
context.subscriptions.insert(
|
||||
sub_id.clone(),
|
||||
|
||||
Reference in New Issue
Block a user