#[non_exhaustive]pub struct EdgeLink<Q>where
Q: Edge,{ /* private fields */ }Expand description
A lightweight descriptor that links to the concrete queue instance backing a graph edge, along with its routing and policy metadata.
Unlike a pure descriptor, EdgeLink owns the queue
implementation. This keeps it zero-alloc and allows direct, policy-aware
operations on the buffer.
Q: concrete queue type implementingEdge
Implementations§
Source§impl<Q> EdgeLink<Q>where
Q: Edge,
impl<Q> EdgeLink<Q>where
Q: Edge,
Sourcepub fn new(
queue: Q,
id: EdgeIndex,
upstream_port: PortId,
downstream_port: PortId,
policy: EdgePolicy,
name: Option<&'static str>,
) -> Self
pub fn new( queue: Q, id: EdgeIndex, upstream_port: PortId, downstream_port: PortId, policy: EdgePolicy, name: Option<&'static str>, ) -> Self
Construct a new EdgeLink that owns the given queue and records its metadata.
Sourcepub fn upstream_port(&self) -> &PortId
pub fn upstream_port(&self) -> &PortId
Get the upstream output port index.
Sourcepub fn downstream_port(&self) -> &PortId
pub fn downstream_port(&self) -> &PortId
Get the downstream input port index.
Sourcepub fn policy(&self) -> &EdgePolicy
pub fn policy(&self) -> &EdgePolicy
Get the edge policy applied to this queue.
Sourcepub fn descriptor(&self) -> EdgeDescriptor
pub fn descriptor(&self) -> EdgeDescriptor
Return the EdgeDescriptor for this EdgeLink.
Trait Implementations§
Source§impl<Q> Edge for EdgeLink<Q>where
Q: Edge,
impl<Q> Edge for EdgeLink<Q>where
Q: Edge,
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 moreAuto Trait Implementations§
impl<Q> Freeze for EdgeLink<Q>where
Q: Freeze,
impl<Q> RefUnwindSafe for EdgeLink<Q>where
Q: RefUnwindSafe,
impl<Q> Send for EdgeLink<Q>where
Q: Send,
impl<Q> Sync for EdgeLink<Q>where
Q: Sync,
impl<Q> Unpin for EdgeLink<Q>where
Q: Unpin,
impl<Q> UnsafeUnpin for EdgeLink<Q>where
Q: UnsafeUnpin,
impl<Q> UnwindSafe for EdgeLink<Q>where
Q: UnwindSafe,
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