Poodle.RateLimit (poodle v1.0.0)
View SourceRate limit information for the Poodle SDK.
Handles parsing and exposing rate limit data from API responses.
Summary
Functions
Check if rate limit is exceeded.
Parse rate limit information from HTTP headers.
Get the time until rate limit resets.
Get the recommended wait time before retrying.
Types
Functions
Check if rate limit is exceeded.
Examples
iex> rate_limit = %Poodle.RateLimit{remaining: 0}
iex> Poodle.RateLimit.exceeded?(rate_limit)
true
iex> rate_limit = %Poodle.RateLimit{remaining: 1}
iex> Poodle.RateLimit.exceeded?(rate_limit)
false
Parse rate limit information from HTTP headers.
Examples
iex> headers = %{"ratelimit-limit" => "2", "ratelimit-remaining" => "1", "ratelimit-reset" => "1640995200"}
iex> Poodle.RateLimit.from_headers(headers)
%Poodle.RateLimit{limit: 2, remaining: 1, reset: 1640995200}
Get the time until rate limit resets.
Examples
iex> rate_limit = %Poodle.RateLimit{reset: 1640995200}
iex> Poodle.RateLimit.time_until_reset(rate_limit)
300 # seconds until reset
Get the recommended wait time before retrying.
Returns retry_after if available, otherwise calculates based on reset time.
Examples
iex> rate_limit = %Poodle.RateLimit{retry_after: 30}
iex> Poodle.RateLimit.wait_time(rate_limit)
30