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, blocking with progressive backoff until available.
Only use when OverflowStrategy::Block is configured.
Uses spin → yield → park progression to balance latency vs CPU waste.
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 UnsafeUnpin for CreditGate
impl UnwindSafe for CreditGate
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§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.