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 32 33 34 35 36 37
use async_std::sync::{ Sender, Receiver }; use crate::base as base; use base::{ RecApp, Protocol }; pub struct ReceiveChannel < P, Q > ( pub (crate) Sender < ( Receiver < P >, Sender < Q > ) > ); impl < P, Q > Protocol for ReceiveChannel < P, Q > where P: Protocol, Q: Protocol { } impl < A, P, Q > RecApp < A > for ReceiveChannel < P, Q > where P : RecApp < A >, Q : RecApp < A >, { type Applied = ReceiveChannel < P :: Applied, Q :: Applied >; }