replace Box<> with VecDeque<>
This commit is contained in:
parent
5fbea48b76
commit
f87bb89612
15
src/limit.rs
15
src/limit.rs
|
@ -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(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue