Trait reactive_messaging::prelude::GenericMulti
source · pub trait GenericMulti<const INSTRUMENTS: usize> {
type ItemType: Debug + Sync + Send + 'static;
type DerivedItemType: Debug + Sync + Send + 'static;
type MultiChannelType: FullDuplexMultiChannel<ItemType = Self::ItemType, DerivedItemType = Self::DerivedItemType> + Sync + Send;
type MutinyStreamType;
const INSTRUMENTS: usize;
// Required methods
fn new<IntoString>(multi_name: IntoString) -> Self
where IntoString: Into<String>;
fn to_multi(
self
) -> Multi<Self::ItemType, Self::MultiChannelType, INSTRUMENTS, Self::DerivedItemType>;
}Expand description
This trait exists to allow simplifying generic declarations of concrete Multi types.
See also [GenericUni].
Usage:
struct MyGenericStruct<T: GenericMulti> { the_multi: T }
let the_multi = Multi<Lots,And,Lots<Of,Generic,Arguments>>::new();
let my_struct = MyGenericStruct { the_multi };Required Associated Types§
sourcetype ItemType: Debug + Sync + Send + 'static
type ItemType: Debug + Sync + Send + 'static
The payload type this Multi’s producers will receive
sourcetype DerivedItemType: Debug + Sync + Send + 'static
type DerivedItemType: Debug + Sync + Send + 'static
The payload type this Multi’s Streams will yield
sourcetype MultiChannelType: FullDuplexMultiChannel<ItemType = Self::ItemType, DerivedItemType = Self::DerivedItemType> + Sync + Send
type MultiChannelType: FullDuplexMultiChannel<ItemType = Self::ItemType, DerivedItemType = Self::DerivedItemType> + Sync + Send
The channel through which payloads will travel from producers to listeners (see Multi for more info)
sourcetype MutinyStreamType
type MutinyStreamType
Defined as MutinyStream<'static, ItemType, MultiChannelType, DerivedItemType>,
the concrete type for the Stream of DerivedItemTypes to be given to listeners
Required Associated Constants§
sourceconst INSTRUMENTS: usize
const INSTRUMENTS: usize
The instruments this Multi will collect/report
Required Methods§
sourcefn new<IntoString>(multi_name: IntoString) -> Self
fn new<IntoString>(multi_name: IntoString) -> Self
See Multi::new()
fn to_multi( self ) -> Multi<Self::ItemType, Self::MultiChannelType, INSTRUMENTS, Self::DerivedItemType>
Object Safety§
This trait is not object safe.