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§
Trait Implementations§
Source§impl Clone for ConcurrentEdge
impl Clone for ConcurrentEdge
Source§fn clone(&self) -> ConcurrentEdge
fn clone(&self) -> ConcurrentEdge
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Edge for ConcurrentEdge
impl Edge for ConcurrentEdge
Source§fn try_push<H: HeaderStore>(
&mut self,
token: MessageToken,
policy: &EdgePolicy,
headers: &H,
) -> EnqueueResult
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>
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
fn occupancy(&self, policy: &EdgePolicy) -> EdgeOccupancy
Return a snapshot of occupancy used for telemetry and admission. Read more
Source§fn try_peek(&self) -> Result<MessageToken, QueueError>
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>
fn try_peek_at(&self, index: usize) -> Result<MessageToken, QueueError>
Peek at the token at logical position
index from the front. Read moreSource§fn try_pop_batch<H: HeaderStore>(
&mut self,
policy: &BatchingPolicy,
headers: &H,
) -> Result<BatchView<'_, MessageToken>, QueueError>
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>
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 moreSource§fn get_admission_decision<H: HeaderStore>(
&self,
policy: &EdgePolicy,
token: MessageToken,
headers: &H,
) -> AdmissionDecision
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 moreSource§fn get_admission_decision_from_message<P: Payload>(
&self,
policy: &EdgePolicy,
message: &Message<P>,
) -> AdmissionDecision
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 moreSource§impl ScopedEdge for ConcurrentEdge
Available on crate feature std only.
impl ScopedEdge for ConcurrentEdge
Available on crate feature
std only.Source§type Handle<'a> = ConcurrentEdge
where
Self: 'a
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,
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§
impl Freeze for ConcurrentEdge
impl RefUnwindSafe for ConcurrentEdge
impl Send for ConcurrentEdge
impl Sync for ConcurrentEdge
impl Unpin for ConcurrentEdge
impl UnsafeUnpin for ConcurrentEdge
impl UnwindSafe for ConcurrentEdge
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