use governor::clock::MonotonicClock;
use governor::state::{InMemoryState, NotKeyed};
use governor::{Quota, RateLimiter};
use nonzero_ext::nonzero;
use url::Url;
use url_macro::url;
pub struct Config {
pub base_url: Url,
pub client: reqwest::Client,
pub limiter: RateLimiter<NotKeyed, InMemoryState, MonotonicClock>,
pub bearer_token: String,
pub user_agent: Option<String>,
}
impl Config {
pub fn new(bearer_token: String) -> Self {
Self {
base_url: url!("https://api.themoviedb.org"),
client: reqwest::Client::new(),
limiter: RateLimiter::direct(Quota::per_second(nonzero!(30u32))),
bearer_token,
user_agent: None,
}
}
}