pub struct RingSource<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> {
pub writer: Writer<TSHIRT_SIZE, RING_CAPACITY>,
}Expand description
A Ring Source is the emitter bound to ring buffer
Essentially has a writer that is used by underlying user - lets say an actor
This can be leveraged to write to source which then can be read by others.
RingBuffer is a shared entity, expected to be static,
However it is expected that we follow Single Writer and many readers principle,
Source emits events (See PooledEvent<TSHIRT_SIZE> for more details).
Fields§
§writer: Writer<TSHIRT_SIZE, RING_CAPACITY>Implementations§
Source§impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> RingSource<TSHIRT_SIZE, RING_CAPACITY>
impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> RingSource<TSHIRT_SIZE, RING_CAPACITY>
pub fn new(out_buffer: &'static RingBuffer<TSHIRT_SIZE, RING_CAPACITY>) -> Self
Trait Implementations§
Auto Trait Implementations§
impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> Freeze for RingSource<TSHIRT_SIZE, RING_CAPACITY>
impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> !RefUnwindSafe for RingSource<TSHIRT_SIZE, RING_CAPACITY>
impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> Send for RingSource<TSHIRT_SIZE, RING_CAPACITY>
impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> Sync for RingSource<TSHIRT_SIZE, RING_CAPACITY>
impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> Unpin for RingSource<TSHIRT_SIZE, RING_CAPACITY>
impl<const TSHIRT_SIZE: usize, const RING_CAPACITY: usize> !UnwindSafe for RingSource<TSHIRT_SIZE, RING_CAPACITY>
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