Struct reactive_mutiny::uni::Uni
source · pub struct Uni<'a, ItemType: Send + Sync + Debug, UniChannelType: FullDuplexUniChannel<'a, ItemType, DerivedItemType>, const INSTRUMENTS: usize, DerivedItemType: Debug = ItemType> {
pub uni_channel: Arc<UniChannelType>,
pub stream_executor: Arc<StreamExecutor<INSTRUMENTS>>,
pub finished_executors_count: AtomicU32,
/* private fields */
}Expand description
Contains the producer-side Uni handle used to interact with the uni event
– for closing the stream, requiring stats, …
Fields§
§uni_channel: Arc<UniChannelType>§stream_executor: Arc<StreamExecutor<INSTRUMENTS>>§finished_executors_count: AtomicU32Implementations§
source§impl<'a, ItemType: Send + Sync + Debug + 'a, UniChannelType: FullDuplexUniChannel<'a, ItemType, DerivedItemType>, const INSTRUMENTS: usize, DerivedItemType: Debug> Uni<'a, ItemType, UniChannelType, INSTRUMENTS, DerivedItemType>
impl<'a, ItemType: Send + Sync + Debug + 'a, UniChannelType: FullDuplexUniChannel<'a, ItemType, DerivedItemType>, const INSTRUMENTS: usize, DerivedItemType: Debug> Uni<'a, ItemType, UniChannelType, INSTRUMENTS, DerivedItemType>
sourcepub fn new<IntoString: Into<String>>(
uni_name: IntoString,
stream_executor: Arc<StreamExecutor<INSTRUMENTS>>
) -> Self
pub fn new<IntoString: Into<String>>( uni_name: IntoString, stream_executor: Arc<StreamExecutor<INSTRUMENTS>> ) -> Self
creates & returns a pair (Uni, UniStream)
pub fn try_send<F: FnOnce(&mut ItemType)>(&self, setter: F) -> bool
pub fn send<F: FnOnce(&mut ItemType)>(&self, setter: F)
pub fn try_send_movable(&self, item: ItemType) -> bool
pub fn consumer_stream( &self ) -> MutinyStream<'a, ItemType, UniChannelType, DerivedItemType>
pub async fn flush(&self, duration: Duration) -> u32
sourcepub async fn close(&self, timeout: Duration) -> bool
pub async fn close(&self, timeout: Duration) -> bool
closes this Uni, in isolation – flushing pending events, closing the producers,
waiting for all events to be fully processed and calling the “on close” callback.
If this Uni share resources with another one (which will get dumped by the “on close”
callback), most probably you want to close them atomically – see unis_close_async!()
Auto Trait Implementations§
impl<'a, ItemType, UniChannelType, const INSTRUMENTS: usize, DerivedItemType> RefUnwindSafe for Uni<'a, ItemType, UniChannelType, INSTRUMENTS, DerivedItemType>where DerivedItemType: RefUnwindSafe, ItemType: RefUnwindSafe, UniChannelType: RefUnwindSafe,
impl<'a, ItemType, UniChannelType, const INSTRUMENTS: usize, DerivedItemType> Send for Uni<'a, ItemType, UniChannelType, INSTRUMENTS, DerivedItemType>where DerivedItemType: Sync, UniChannelType: Send + Sync,
impl<'a, ItemType, UniChannelType, const INSTRUMENTS: usize, DerivedItemType> Sync for Uni<'a, ItemType, UniChannelType, INSTRUMENTS, DerivedItemType>where DerivedItemType: Sync, UniChannelType: Send + Sync,
impl<'a, ItemType, UniChannelType, const INSTRUMENTS: usize, DerivedItemType> Unpin for Uni<'a, ItemType, UniChannelType, INSTRUMENTS, DerivedItemType>
impl<'a, ItemType, UniChannelType, const INSTRUMENTS: usize, DerivedItemType> UnwindSafe for Uni<'a, ItemType, UniChannelType, INSTRUMENTS, DerivedItemType>where DerivedItemType: RefUnwindSafe, ItemType: RefUnwindSafe, UniChannelType: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more