Skip to main content

ferrite_session/internal/base/rec/
traits.rs

1use 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}