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
29
30
31
use async_std::sync::{ Receiver };

use crate::base as base;

use base::{ RecApp, Protocol };

pub struct SendValue < T, A >
(
  pub (crate) T,
  pub (crate) Receiver < A >
);

impl < T, P > Protocol for SendValue < T, P >
where
  T : Send + 'static,
  P : Protocol
{ }

impl < X, T, A >
  RecApp < X > for
  SendValue < T, A >
where
  T : Send + 'static,
  A : RecApp < X >,
{
  type Applied =
    SendValue <
      T,
      A :: Applied
    >;
}