ferrite_session/internal/base/rec/
traits.rs1use crate::internal::base::protocol::Protocol;
2
3pub trait RecApp<A>: Sized
4{
5 type Applied: Send;
6}
7
8pub trait HasRecApp<F, C>: Send
9{
10 fn get_applied(self: Box<Self>) -> Box<F::Applied>
11 where
12 F: RecApp<C>;
13}
14
15pub trait SharedRecApp<X>
16{
17 type Applied;
18}
19
20pub trait HasRecEndpoint<F, C>: Send + 'static
21{
22 fn get_applied(
23 self: Box<Self>
24 ) -> Box<<F::Applied as Protocol>::ClientEndpoint>
25 where
26 F: RecApp<C>,
27 F::Applied: Protocol;
28}