diff options
Diffstat (limited to 'src/client/responder.rs')
-rw-r--r-- | src/client/responder.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/client/responder.rs b/src/client/responder.rs index f501102..0e5fb79 100644 --- a/src/client/responder.rs +++ b/src/client/responder.rs @@ -137,10 +137,12 @@ impl<H: Handler> OneshotResponder<H> { } } - fn handle_response(&mut self, resp: JsonValue) { + fn handle_response(&mut self, mut resp: JsonValue) { if let Some(id) = resp["@extra"].as_u64() { if let Some(fut) = self.wakers_map.remove(&id) { let mut fut_data = fut.lock().unwrap(); + resp.as_object_mut() + .map(|inner_map| inner_map.remove("@extra")); fut_data.resp = Some(Ok(resp)); fut_data.waker.as_ref().map(Waker::wake_by_ref); } else { |