[][src]Struct shrev::EventChannel

pub struct EventChannel<E> { /* fields omitted */ }

Event channel

Methods

impl<E> EventChannel<E> where
    E: Event
[src]

pub fn new() -> Self[src]

Create a new EventChannel with a default size of 50

pub fn with_capacity(size: usize) -> Self[src]

Create a new EventChannel with the given starting capacity.

pub fn would_write(&mut self) -> bool[src]

Returns true if any reader would observe an additional event.

This can be used to skip calls to iter_write in case the event construction is expensive.

pub fn register_reader(&mut self) -> ReaderId<E>[src]

Register a reader.

To be able to read events, a reader id is required. This is because otherwise the channel wouldn't know where in the ringbuffer the reader has read to earlier. This information is stored in the reader id.

pub fn slice_write(&mut self, events: &[E]) where
    E: Clone
[src]

Deprecated:

please use iter_write instead

Write a slice of events into storage

pub fn iter_write<I>(&mut self, iter: I) where
    I: IntoIterator<Item = E>,
    I::IntoIter: ExactSizeIterator
[src]

Write an iterator of events into storage

pub fn drain_vec_write(&mut self, events: &mut Vec<E>)[src]

Drain a vector of events into storage.

pub fn single_write(&mut self, event: E)[src]

Write a single event into storage.

Important traits for StorageIterator<'a, T>
pub fn read(&self, reader_id: &mut ReaderId<E>) -> EventIterator<E>[src]

Read any events that have been written to storage since the last read with reader_id.

Note that this will advance the position of the reader regardless of what you do with the iterator. In other words, calling read without iterating the result won't preserve the events returned. You need to iterate all the events as soon as you got them from this method. This behavior is equivalent to e.g. Vec::drain.

Trait Implementations

impl<E> Default for EventChannel<E> where
    E: Event
[src]

impl<E: Debug> Debug for EventChannel<E>[src]

Auto Trait Implementations

impl<E> Send for EventChannel<E> where
    E: Send

impl<E> Sync for EventChannel<E> where
    E: Sync

Blanket Implementations

impl<T> Event for T where
    T: Send + Sync + 'static, 
[src]

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]