diff --git a/experimental/reverie-rpc-macros/src/expand.rs b/experimental/reverie-rpc-macros/src/expand.rs index c7979d8..4c5aa0b 100644 --- a/experimental/reverie-rpc-macros/src/expand.rs +++ b/experimental/reverie-rpc-macros/src/expand.rs @@ -136,7 +136,7 @@ impl Service { where S: #ident + Send, { - type Request<'r> = #request_ident #request_lifetime; + type Request<'r> where S: 'r = #request_ident #request_lifetime; type Response = #response_ident; type Future<'a> where S: 'a = ::reverie_rpc::BoxFuture<'a, Option>; diff --git a/experimental/reverie-rpc/src/lib.rs b/experimental/reverie-rpc/src/lib.rs index 5548b98..3ed8098 100644 --- a/experimental/reverie-rpc/src/lib.rs +++ b/experimental/reverie-rpc/src/lib.rs @@ -6,8 +6,6 @@ * LICENSE file in the root directory of this source tree. */ -#![feature(generic_associated_types)] - //! This crate provides the protocol that is to be used when communicating with //! global state. This crate is meant to be shared between the guest and host //! processes. diff --git a/experimental/reverie-rpc/src/service.rs b/experimental/reverie-rpc/src/service.rs index 7711082..25e69db 100644 --- a/experimental/reverie-rpc/src/service.rs +++ b/experimental/reverie-rpc/src/service.rs @@ -16,7 +16,9 @@ use serde::Serialize; pub type BoxFuture<'a, T> = Pin + Send + 'a>>; pub trait Service { - type Request<'r>: Deserialize<'r> + Unpin + Send; + type Request<'r>: Deserialize<'r> + Unpin + Send + where + Self: 'r; type Response: Serialize + Send + Unpin; type Future<'a>: Future> + Send + 'a where @@ -31,12 +33,10 @@ impl Service for Arc where S: Service, { - type Request<'r> = S::Request<'r>; + type Request<'r> = S::Request<'r> where S: 'r; type Response = S::Response; type Future<'a> - where - S: 'a, - = S::Future<'a>; + = S::Future<'a> where S: 'a; fn call<'a>(&'a self, req: Self::Request<'a>) -> Self::Future<'a> { self.as_ref().call(req) diff --git a/experimental/riptrace/rpc/src/lib.rs b/experimental/riptrace/rpc/src/lib.rs index 451ff01..1a6317e 100644 --- a/experimental/riptrace/rpc/src/lib.rs +++ b/experimental/riptrace/rpc/src/lib.rs @@ -6,9 +6,6 @@ * LICENSE file in the root directory of this source tree. */ -// reverie_rpc::service requires GATs. -#![feature(generic_associated_types)] - //! This contains the RPC protocol for the guest and host. That is, how the host //! and guest should talk to each other. diff --git a/experimental/traceviz/rpc/src/lib.rs b/experimental/traceviz/rpc/src/lib.rs index eca1c44..5d94432 100644 --- a/experimental/traceviz/rpc/src/lib.rs +++ b/experimental/traceviz/rpc/src/lib.rs @@ -6,9 +6,6 @@ * LICENSE file in the root directory of this source tree. */ -// reverie_rpc::service requires GATs. -#![feature(generic_associated_types)] - //! This contains the RPC protocol for the guest and host. That is, how the host //! and guest should talk to each other.