replace Box<> with VecDeque<>

This commit is contained in:
bitfl0wer 2023-04-07 21:51:50 +02:00
parent 5fbea48b76
commit f87bb89612
1 changed files with 10 additions and 5 deletions

View File

@ -1,4 +1,5 @@
use reqwest::{Client, Request};
use std::collections::VecDeque;
struct Limit {
limit: i64,
@ -6,22 +7,26 @@ struct Limit {
reset: i64,
}
pub struct Ratelimiter {
pub struct LimitedRequester {
http: Client,
limit: Limit,
requests: Box<[Request]>, // wow, amazing
requests: VecDeque<Request>, // wow, amazing
}
impl Ratelimiter {
impl LimitedRequester {
/// Create a new `LimitedRequester`. `LimitedRequester`s use a `VecDeque` to store requests and
/// send them to the server using a `Client`. It keeps track of the remaining requests that can
/// be send within the `Limit` of an external API Ratelimiter, and looks at the returned request
/// headers to see if it can find Ratelimit info to update itself.
pub fn new() -> Self {
Ratelimiter {
LimitedRequester {
limit: Limit {
limit: 1,
remaining: 1,
reset: 0,
},
http: Client::new(),
requests: Box::new([]),
requests: VecDeque::new(),
}
}
}