pub enum RateLimitType {
NonTradingAccount,
TradingAccount,
NonTradingApp,
HistoricalPrice,
OnePerSecond,
}Expand description
Rate limiter type for different API endpoints with their respective limits
These limits are based on the official IG Markets API documentation:
- Per-app non-trading requests per minute: 60
- Per-account trading requests per minute: 100 (Applies to create/amend position or working order requests)
- Per-account non-trading requests per minute: 30
- Historical price data points per week: 10,000 (Applies to price history endpoints)
Variants§
NonTradingAccount
Non-trading requests (per-account): 30 per minute
TradingAccount
Trading requests (per-account): 100 per minute (create/amend position or working order requests)
NonTradingApp
Non-trading requests (per-app): 60 per minute
HistoricalPrice
Historical price data: 10,000 points per week (price history endpoints)
OnePerSecond
One request per second (special rate limit to prevent bursts)
Implementations§
Source§impl RateLimitType
impl RateLimitType
Sourcepub fn request_limit(&self) -> usize
pub fn request_limit(&self) -> usize
Gets the request limit per time window
Sourcepub fn time_window_ms(&self) -> u64
pub fn time_window_ms(&self) -> u64
Gets the time window in milliseconds
Sourcepub fn description(&self) -> String
pub fn description(&self) -> String
Gets a description of the rate limit
Trait Implementations§
Source§impl Clone for RateLimitType
impl Clone for RateLimitType
Source§fn clone(&self) -> RateLimitType
fn clone(&self) -> RateLimitType
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RateLimitType
impl Debug for RateLimitType
Source§impl<'de> Deserialize<'de> for RateLimitType
impl<'de> Deserialize<'de> for RateLimitType
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for RateLimitType
impl PartialEq for RateLimitType
Source§impl Serialize for RateLimitType
impl Serialize for RateLimitType
impl Copy for RateLimitType
impl Eq for RateLimitType
impl StructuralPartialEq for RateLimitType
Auto Trait Implementations§
impl Freeze for RateLimitType
impl RefUnwindSafe for RateLimitType
impl Send for RateLimitType
impl Sync for RateLimitType
impl Unpin for RateLimitType
impl UnwindSafe for RateLimitType
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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> 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