pub struct RingBuffer<T> { /* private fields */ }Expand description
Ring Buffer.
Implementations§
Source§impl<T> RingBuffer<T>
impl<T> RingBuffer<T>
Sourcepub fn new<F>(factory: F, size: usize, sequencer: Arc<dyn Sequencer>) -> Selfwhere
F: Fn() -> T,
pub fn new<F>(factory: F, size: usize, sequencer: Arc<dyn Sequencer>) -> Selfwhere
F: Fn() -> T,
Creates a new ring buffer with the given factory, size, and sequencer.
Sourcepub fn add_gating_sequences(&self, sequences: Vec<Arc<Sequence>>)
pub fn add_gating_sequences(&self, sequences: Vec<Arc<Sequence>>)
Adds gating sequences to the sequencer.
Sourcepub fn get_mut(&mut self, sequence: i64) -> &mut T
pub fn get_mut(&mut self, sequence: i64) -> &mut T
Gets a mutable reference to the event at the given sequence.
Sourcepub unsafe fn get_unchecked(&self, sequence: i64) -> &T
pub unsafe fn get_unchecked(&self, sequence: i64) -> &T
Unsafe access for high performance (internal use).
§Safety
The caller must ensure that the sequence number is valid and that no other thread is concurrently modifying the same slot.
Sourcepub unsafe fn get_unchecked_mut(&self, sequence: i64) -> &mut T
pub unsafe fn get_unchecked_mut(&self, sequence: i64) -> &mut T
Unsafe mutable access for high performance (internal use).
§Safety
The caller must ensure that the sequence number is valid and that they have exclusive access to the slot (e.g., via the Disruptor protocol).
Trait Implementations§
impl<T: Send> Send for RingBuffer<T>
impl<T: Send> Sync for RingBuffer<T>
Auto Trait Implementations§
impl<T> Freeze for RingBuffer<T>
impl<T> !RefUnwindSafe for RingBuffer<T>
impl<T> Unpin for RingBuffer<T>
impl<T> !UnwindSafe for RingBuffer<T>
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