Skip to main content

ConcurrentEdge

Struct ConcurrentEdge 

Source
pub struct ConcurrentEdge { /* private fields */ }
Expand description

A thread-safe edge handle. All clones share the same underlying ring buffer.

Use ConcurrentEdge::new(capacity) to create; clone for each worker that needs read or write access. Intended for use in codegen-generated run_scoped() methods as the std-feature replacement for StaticRing<N>.

Implementations§

Source§

impl ConcurrentEdge

Source

pub fn new(capacity: usize) -> Self

Create a new ring buffer with the given item capacity.

Trait Implementations§

Source§

impl Clone for ConcurrentEdge

Source§

fn clone(&self) -> ConcurrentEdge

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Edge for ConcurrentEdge

Source§

fn try_push<H: HeaderStore>( &mut self, token: MessageToken, policy: &EdgePolicy, headers: &H, ) -> EnqueueResult

Attempt to push a token onto the queue using the given edge policy. Read more
Source§

fn try_pop<H: HeaderStore>( &mut self, headers: &H, ) -> Result<MessageToken, QueueError>

Attempt to pop the front token from the queue. Read more
Source§

fn occupancy(&self, policy: &EdgePolicy) -> EdgeOccupancy

Return a snapshot of occupancy used for telemetry and admission. Read more
Source§

fn is_empty(&self) -> bool

Return true if the queue is empty.
Source§

fn try_peek(&self) -> Result<MessageToken, QueueError>

Peek at the front token without removing it.
Source§

fn try_peek_at(&self, index: usize) -> Result<MessageToken, QueueError>

Peek at the token at logical position index from the front. Read more
Source§

fn try_pop_batch<H: HeaderStore>( &mut self, policy: &BatchingPolicy, headers: &H, ) -> Result<BatchView<'_, MessageToken>, QueueError>

Pop a batch of tokens according to the provided batching policy. Read more
Source§

fn peek_header<'h, H: HeaderStore>( &self, headers: &'h H, ) -> Result<<H as HeaderStore>::HeaderGuard<'h>, QueueError>

Peek the front message header via HeaderStore (convenience). Read more
Source§

fn get_admission_decision<H: HeaderStore>( &self, policy: &EdgePolicy, token: MessageToken, headers: &H, ) -> AdmissionDecision

Return an AdmissionDecision for the given token according to policy and the current occupancy snapshot. Read more
Source§

fn get_admission_decision_from_message<P: Payload>( &self, policy: &EdgePolicy, message: &Message<P>, ) -> AdmissionDecision

Return an AdmissionDecision for the given token according to policy and the current occupancy snapshot. Read more
Source§

impl ScopedEdge for ConcurrentEdge

Available on crate feature std only.
Source§

type Handle<'a> = ConcurrentEdge where Self: 'a

Per-worker handle type. Must implement Edge + Send so it can be moved into a scoped thread and used for stepping.
Source§

fn scoped_handle<'a>(&'a self, _kind: EdgeHandleKind) -> Self::Handle<'a>
where Self: 'a,

Create a scoped handle for a worker thread. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.