From 52de08330f5052a1f10c5d46e1352ca86b622d71 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 10 Aug 2018 23:56:19 +0300 Subject: dedupe --- crates/server/src/dispatch.rs | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) (limited to 'crates/server/src/dispatch.rs') diff --git a/crates/server/src/dispatch.rs b/crates/server/src/dispatch.rs index d9681db40..6a609f10e 100644 --- a/crates/server/src/dispatch.rs +++ b/crates/server/src/dispatch.rs @@ -9,20 +9,17 @@ use drop_bomb::DropBomb; use ::{ Result, - req::{Request, Notification}, + req::{ClientRequest, Notification}, io::{Io, RawMsg, RawResponse, RawRequest, RawNotification}, }; -pub struct Responder { +pub struct Responder { id: u64, bomb: DropBomb, ph: PhantomData, } -impl Responder - where - R::Params: DeserializeOwned, - R::Result: Serialize, +impl Responder { pub fn response(self, io: &mut Io, resp: Result) -> Result<()> { match resp { @@ -52,11 +49,8 @@ impl Responder } -fn parse_request_as(raw: RawRequest) -> Result<::std::result::Result<(R::Params, Responder), RawRequest>> - where - R: Request, - R::Params: DeserializeOwned, - R::Result: Serialize, +fn parse_request_as(raw: RawRequest) + -> Result<::std::result::Result<(R::Params, Responder), RawRequest>> { if raw.method != R::METHOD { return Ok(Err(raw)); @@ -73,9 +67,7 @@ fn parse_request_as(raw: RawRequest) -> Result<::std::result::Result<(R::Para pub fn handle_request(req: &mut Option, f: F) -> Result<()> where - R: Request, - R::Params: DeserializeOwned, - R::Result: Serialize, + R: ClientRequest, F: FnOnce(R::Params, Responder) -> Result<()> { match req.take() { @@ -90,11 +82,8 @@ pub fn handle_request(req: &mut Option, f: F) -> Result<()> } } -pub fn expect_request(io: &mut Io, raw: RawRequest) -> Result)>> - where - R: Request, - R::Params: DeserializeOwned, - R::Result: Serialize, +pub fn expect_request(io: &mut Io, raw: RawRequest) + -> Result)>> { let ret = match parse_request_as::(raw)? { Ok(x) => Some(x), -- cgit v1.2.3