pub struct CreditGate { /* private fields */ }Expand description
Manages credits for a single receiver (core).
Thread-safe for use between sender and receiver threads.
Implementations§
Source§impl CreditGate
impl CreditGate
Sourcepub fn new(config: BackpressureConfig) -> Self
pub fn new(config: BackpressureConfig) -> Self
Creates a new credit gate with the given configuration.
Sourcepub fn try_acquire(&self) -> CreditAcquireResult
pub fn try_acquire(&self) -> CreditAcquireResult
Attempts to acquire one credit.
Returns the result based on the overflow strategy.
Sourcepub fn try_acquire_n(&self, n: usize) -> CreditAcquireResult
pub fn try_acquire_n(&self, n: usize) -> CreditAcquireResult
Attempts to acquire N credits.
Sourcepub fn acquire_blocking(&self, n: usize)
pub fn acquire_blocking(&self, n: usize)
Acquires credits, spinning until available.
Only use when OverflowStrategy::Block is configured.
Sourcepub fn release(&self, n: usize)
pub fn release(&self, n: usize)
Releases credits back to the pool.
Called by receiver after processing data.
Sourcepub fn max_credits(&self) -> usize
pub fn max_credits(&self) -> usize
Returns the maximum credits.
Sourcepub fn is_backpressured(&self) -> bool
pub fn is_backpressured(&self) -> bool
Returns true if backpressure is active (credits below threshold).
Sourcepub fn is_recovered(&self) -> bool
pub fn is_recovered(&self) -> bool
Returns true if backpressure has cleared (credits above low watermark).
Sourcepub fn config(&self) -> &BackpressureConfig
pub fn config(&self) -> &BackpressureConfig
Returns the configuration.
Sourcepub fn metrics(&self) -> &CreditMetrics
pub fn metrics(&self) -> &CreditMetrics
Returns the metrics.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for CreditGate
impl RefUnwindSafe for CreditGate
impl Send for CreditGate
impl Sync for CreditGate
impl Unpin for CreditGate
impl UnwindSafe for CreditGate
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<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>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.