pub struct FlowController { /* private fields */ }Expand description
Per-channel flow controller.
Tracks credits, watermark state, and flow control metrics.
Implementations§
Source§impl FlowController
impl FlowController
Sourcepub fn new(config: FlowControlConfig) -> Self
pub fn new(config: FlowControlConfig) -> Self
Create a new flow controller with the given config.
Sourcepub fn try_acquire(&self) -> bool
pub fn try_acquire(&self) -> bool
Try to acquire a credit for sending. Returns true if credit available.
Sourcepub fn grant(&self, amount: u32)
pub fn grant(&self, amount: u32)
Grant credits to the producer (called by consumer when queue has space).
Sourcepub fn available_credits(&self) -> i64
pub fn available_credits(&self) -> i64
Available credits.
Sourcepub fn check_watermark(&self, queue_depth: u32) -> Option<WatermarkSignal>
pub fn check_watermark(&self, queue_depth: u32) -> Option<WatermarkSignal>
Check watermark state based on current queue depth.
Returns a watermark signal if a threshold was just crossed.
Sourcepub fn overflow_policy(&self) -> OverflowPolicy
pub fn overflow_policy(&self) -> OverflowPolicy
Get the overflow policy.
Sourcepub fn record_drop(&self)
pub fn record_drop(&self)
Record a message dropped (for metrics).
Sourcepub fn record_dlq(&self)
pub fn record_dlq(&self)
Record a message routed to DLQ (for metrics).
Sourcepub fn metrics_snapshot(&self) -> FlowMetricsSnapshot
pub fn metrics_snapshot(&self) -> FlowMetricsSnapshot
Get a snapshot of flow control metrics.
Auto Trait Implementations§
impl !Freeze for FlowController
impl RefUnwindSafe for FlowController
impl Send for FlowController
impl Sync for FlowController
impl Unpin for FlowController
impl UnsafeUnpin for FlowController
impl UnwindSafe for FlowController
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.