pub trait FullDuplexMultiChannel: ChannelCommon<'static, Self::ItemType, Self::DerivedItemType> + ChannelMulti<'static, Self::ItemType, Self::DerivedItemType> + ChannelProducer<'static, Self::ItemType, Self::DerivedItemType> + ChannelConsumer<'static, Self::DerivedItemType> {
type ItemType: 'static + Debug + Send + Sync;
type DerivedItemType: 'static + Debug + Send + Sync;
const MAX_STREAMS: usize;
const BUFFER_SIZE: usize;
}Expand description
A fully fledged Multi channel, that has both the producer and consumer parts
Also, laverages generic programming by allowing simpler generic parameters:
struct MyGenericStruct<T: FullDuplexUniChannel> { the_channel: T }
let the_channel = uni::channels::xxx<Lots,And,Lots<Of,Generic,Arguments>>::new();
let my_struct = MyGenericStruct { the_channel };
// see more at `tests/use_cases.rs`