1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use core::{
  future::Future,
  pin::Pin,
};
use crate::internal::base::{
  context::Context,
  protocol::{
    Protocol,
    ProviderEndpoint,
  },
};
pub type Session<P> = PartialSession<(), P>;
pub struct PartialSession<C, A>
where
  A: Protocol,
  C: Context,
{
  pub(crate) executor: Box<
    dyn FnOnce(
        C::Endpoints,
        ProviderEndpoint<A>,
      ) -> Pin<Box<dyn Future<Output = ()> + Send>>
      + Send,
  >,
}