From 5f95fbc69ae51d20814c9725ad966646b831291d Mon Sep 17 00:00:00 2001 From: Henry Zimmerman Date: Wed, 11 Jul 2018 19:31:26 -0500 Subject: [PATCH 1/4] remove transferable trait --- src/agent.rs | 29 +++++------------------------ src/prelude.rs | 1 - 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/src/agent.rs b/src/agent.rs index b1bc7c16ca8..87a2aca9745 100644 --- a/src/agent.rs +++ b/src/agent.rs @@ -20,12 +20,6 @@ enum ToWorker { Destroy, } -impl Transferable for ToWorker -where - T: Serialize + for <'de> Deserialize<'de>, -{ -} - #[derive(Serialize, Deserialize)] enum FromWorker { /// Worker sends this message when `wasm` bundle has loaded. @@ -33,34 +27,21 @@ enum FromWorker { ProcessOutput(HandlerId, T), } -impl Transferable for FromWorker -where - T: Serialize + for <'de> Deserialize<'de>, -{ -} - - -/// Represents a message which you could send to an agent. -pub trait Transferable -where - Self: Serialize + for <'de> Deserialize<'de>, -{ -} trait Packed { fn pack(&self) -> Vec; fn unpack(data: &Vec) -> Self; } -impl Packed for T { +impl Deserialize<'de>> Packed for T { fn pack(&self) -> Vec { bincode::serialize(&self) - .expect("can't serialize a transferable object") + .expect("can't serialize an agent message") } fn unpack(data: &Vec) -> Self { bincode::deserialize(&data) - .expect("can't deserialize a transferable object") + .expect("can't deserialize an agent message") } } @@ -545,9 +526,9 @@ pub trait Agent: Sized + 'static { /// Type of an input messagae. type Message; /// Incoming message type. - type Input: Transferable; + type Input: Serialize + for <'de> Deserialize<'de>; /// Outgoing message type. - type Output: Transferable; + type Output: Serialize + for <'de> Deserialize<'de>; /// Creates an instance of an agent. fn create(link: AgentLink) -> Self; diff --git a/src/prelude.rs b/src/prelude.rs index de35f1d73b5..85642547cce 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -58,6 +58,5 @@ pub mod worker { Job, Private, Public, - Transferable, }; } From f7c638598d676b1a26d50a31e9d266da1d022786 Mon Sep 17 00:00:00 2001 From: Henry Zimmerman Date: Fri, 27 Sep 2019 16:24:05 -0400 Subject: [PATCH 2/4] remove transferable from router example, run cargo fmt --- examples/routing/src/router.rs | 3 --- src/agent.rs | 13 +++++-------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/examples/routing/src/router.rs b/examples/routing/src/router.rs index bbb3bb5e730..e1047e31e8f 100644 --- a/examples/routing/src/router.rs +++ b/examples/routing/src/router.rs @@ -71,7 +71,6 @@ where BrowserNavigationRouteChanged((String, T)), } -impl Transferable for Route where for<'de> T: Serialize + Deserialize<'de> {} #[derive(Serialize, Deserialize, Debug)] pub enum Request { @@ -82,8 +81,6 @@ pub enum Request { GetCurrentRoute, } -impl Transferable for Request where for<'de> T: Serialize + Deserialize<'de> {} - /// The Router worker holds on to the RouteService singleton and mediates access to it. pub struct Router where diff --git a/src/agent.rs b/src/agent.rs index 8250476566e..c2d52a77403 100644 --- a/src/agent.rs +++ b/src/agent.rs @@ -33,21 +33,18 @@ enum FromWorker { ProcessOutput(HandlerId, T), } - trait Packed { fn pack(&self) -> Vec; fn unpack(data: &[u8]) -> Self; } -impl Deserialize<'de>> Packed for T { +impl Deserialize<'de>> Packed for T { fn pack(&self) -> Vec { - bincode::serialize(&self) - .expect("can't serialize an agent message") + bincode::serialize(&self).expect("can't serialize an agent message") } fn unpack(data: &[u8]) -> Self { - bincode::deserialize(&data) - .expect("can't deserialize an agent message") + bincode::deserialize(&data).expect("can't deserialize an agent message") } } @@ -650,9 +647,9 @@ pub trait Agent: Sized + 'static { /// Type of an input messagae. type Message; /// Incoming message type. - type Input: Serialize + for <'de> Deserialize<'de>; + type Input: Serialize + for<'de> Deserialize<'de>; /// Outgoing message type. - type Output: Serialize + for <'de> Deserialize<'de>; + type Output: Serialize + for<'de> Deserialize<'de>; /// Creates an instance of an agent. fn create(link: AgentLink) -> Self; From 3d023886e3d10ee72dd1bc8970da7ba19d503f35 Mon Sep 17 00:00:00 2001 From: Henry Zimmerman Date: Sun, 29 Sep 2019 10:16:11 -0400 Subject: [PATCH 3/4] cargo fmt --- examples/routing/src/router.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/routing/src/router.rs b/examples/routing/src/router.rs index e1047e31e8f..3c7302501cd 100644 --- a/examples/routing/src/router.rs +++ b/examples/routing/src/router.rs @@ -71,7 +71,6 @@ where BrowserNavigationRouteChanged((String, T)), } - #[derive(Serialize, Deserialize, Debug)] pub enum Request { /// Changes the route using a RouteInfo struct and alerts connected components to the route change. From c88c686c264ae245545001fcbffe41d1ff8c1efb Mon Sep 17 00:00:00 2001 From: Justin Starry Date: Sun, 29 Sep 2019 20:58:47 -0400 Subject: [PATCH 4/4] Remove Transferable from multi_thread example --- examples/multi_thread/src/context.rs | 4 ---- examples/multi_thread/src/job.rs | 4 ---- examples/multi_thread/src/native_worker.rs | 4 ---- 3 files changed, 12 deletions(-) diff --git a/examples/multi_thread/src/context.rs b/examples/multi_thread/src/context.rs index 532333f6ad9..144c62b002f 100644 --- a/examples/multi_thread/src/context.rs +++ b/examples/multi_thread/src/context.rs @@ -12,15 +12,11 @@ pub enum Request { GetDataFromServer, } -impl Transferable for Request {} - #[derive(Serialize, Deserialize, Debug)] pub enum Response { DataFetched, } -impl Transferable for Response {} - pub enum Msg { Updating, } diff --git a/examples/multi_thread/src/job.rs b/examples/multi_thread/src/job.rs index 97abefba7e8..8000726785f 100644 --- a/examples/multi_thread/src/job.rs +++ b/examples/multi_thread/src/job.rs @@ -12,15 +12,11 @@ pub enum Request { GetDataFromServer, } -impl Transferable for Request {} - #[derive(Serialize, Deserialize, Debug)] pub enum Response { DataFetched, } -impl Transferable for Response {} - pub enum Msg { Updating, } diff --git a/examples/multi_thread/src/native_worker.rs b/examples/multi_thread/src/native_worker.rs index c9e2f1b7661..5980ab061d0 100644 --- a/examples/multi_thread/src/native_worker.rs +++ b/examples/multi_thread/src/native_worker.rs @@ -12,15 +12,11 @@ pub enum Request { GetDataFromServer, } -impl Transferable for Request {} - #[derive(Serialize, Deserialize, Debug)] pub enum Response { DataFetched, } -impl Transferable for Response {} - pub enum Msg { Updating, }