use nonzero_ext::nonzero;
use crate::rate_limiter::Quota;
#[cfg(doc)]
use crate::{
jolpica::{
resource::{Filters, Page, Resource},
response::{RaceResult, Response, SprintResult},
},
rate_limiter::RateLimiter,
};
pub const JOLPICA_API_BASE_URL: &str = "https://api.jolpi.ca/ergast/f1";
#[derive(Copy, Clone, Debug)]
pub struct RateLimit {
pub burst_limit_per_sec: std::num::NonZeroU32,
pub sustained_limit_per_hour: std::num::NonZeroU32,
}
pub const JOLPICA_API_RATE_LIMIT: RateLimit = RateLimit {
burst_limit_per_sec: nonzero!(4u32),
sustained_limit_per_hour: nonzero!(500u32),
};
pub const JOLPICA_API_RATE_LIMIT_QUOTA: Quota = Quota::per_hour(JOLPICA_API_RATE_LIMIT.sustained_limit_per_hour)
.allow_burst(JOLPICA_API_RATE_LIMIT.burst_limit_per_sec);
#[derive(Clone, Copy, Debug)]
pub struct Pagination {
pub default_limit: u32,
pub default_offset: u32,
pub max_limit: u32,
}
pub const JOLPICA_API_PAGINATION: Pagination = Pagination {
default_limit: 30,
default_offset: 0,
max_limit: 100,
};
pub const GRID_PIT_LANE: u32 = 0;