EventBufferManager

Struct EventBufferManager 

Source
pub struct EventBufferManager<const N: usize> { /* private fields */ }
Expand description

An ergonomic wrapper over fallibly writing to fixed-size event buffers.

As FixedSizeEventBuffer has a fixed capacity, callers have to handle the scenario where they attempt to push an event into the event buffer but the buffer has no more capacity. This generally involves having to swap it with a new buffer, as well as holding the event around until they acquire the new buffer.

EventBufferManager provides a simple, ergonomic wrapper over a basic pattern of treating the current buffer as an optional value, and handling the logic of ensuring we have a buffer to write into only when actually attempting a write, rather than always holding on to one.

Implementations§

Source§

impl<const N: usize> EventBufferManager<N>

Source

pub fn try_push(&mut self, event: Event) -> Option<FixedSizeEventBuffer<N>>

Attempts to push an event into the current event buffer.

If the event buffer is full, it is replaced with a new event buffer before pushing the event, and Some(buffer) is returned containing the old event buffer. Otherwise, None is returned.

Source

pub fn consume(&mut self) -> Option<FixedSizeEventBuffer<N>>

Consumes the current event buffer, if one exists.

Trait Implementations§

Source§

impl<const N: usize> Default for EventBufferManager<N>

Source§

fn default() -> EventBufferManager<N>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<const N: usize> Freeze for EventBufferManager<N>

§

impl<const N: usize> !RefUnwindSafe for EventBufferManager<N>

§

impl<const N: usize> Send for EventBufferManager<N>

§

impl<const N: usize> Sync for EventBufferManager<N>

§

impl<const N: usize> Unpin for EventBufferManager<N>

§

impl<const N: usize> !UnwindSafe for EventBufferManager<N>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Track for T

§

fn track_allocations(self, token: AllocationGroupToken) -> Tracked<Self>

Instruments this type by attaching the given allocation group token, returning a Tracked wrapper. Read more
§

fn in_current_allocation_group(self) -> Tracked<Self>

Instruments this type by attaching the current allocation group, returning a Tracked wrapper. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more