Skip to main content

RateLimitInfo

Struct RateLimitInfo 

Source
pub struct RateLimitInfo { /* private fields */ }
Expand description

Rate limit information for explicit control

§Governing Principle Compliance

This struct follows the “Thin Client, Rich API” principle by:

  • Information vs Action: Provides rate limit data without making automatic decisions
  • Zero Automatic Behavior: No hidden rate limiting or magic throttling thresholds
  • Explicit Control: Developers can use this information to make their own timing decisions
  • Transparent Operations: All rate limit metrics are visible and accessible

Implementations§

Source§

impl RateLimitInfo

Source

pub fn new() -> Self

Create new rate limit info (currently returns placeholder data)

§Note

This is a placeholder implementation. In a real implementation, this would track actual rate limit headers from API responses. For now, it provides the interface for explicit rate limit information access without automatic behavior.

Source

pub fn remaining_requests(&self) -> u32

Get remaining requests in current window

Source

pub fn total_limit(&self) -> u32

Get total rate limit for current window

Source

pub fn reset_time(&self) -> Option<SystemTime>

Get time when rate limit window resets

Source

pub fn window_duration(&self) -> Duration

Get duration of rate limit window

Source§

impl RateLimitInfo

Source

pub fn usage_percentage(&self) -> f64

Calculate usage percentage (0.0 to 1.0)

Source

pub fn is_approaching_limit_with_threshold( &self, threshold_percentage: f64, ) -> bool

Check if rate limit is approaching based on explicit criteria

§Arguments
  • threshold_percentage - Percentage threshold (0.0 to 1.0) for considering rate limit approaching
§Returns

Returns true if usage percentage exceeds the specified threshold (explicit developer-defined threshold)

Source

pub fn suggested_delay_for_rate( &self, desired_requests_per_minute: u32, ) -> Duration

Calculate suggested delay for manual rate control

§Arguments
  • desired_requests_per_minute - Target request rate for manual pacing
§Returns

Returns suggested delay duration for achieving the desired rate (developer-controlled pacing)

Trait Implementations§

Source§

impl Clone for RateLimitInfo

Source§

fn clone(&self) -> RateLimitInfo

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RateLimitInfo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RateLimitInfo

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more