1- use crate :: tlru:: { Builder , Tlru } ;
1+ use crate :: tlru:: Tlru ;
2+ use std:: num:: NonZero ;
23use tokio:: time:: Duration ;
34use twilight_http_ratelimiting:: RateLimiter ;
45
@@ -9,7 +10,7 @@ pub struct RatelimiterMap {
910}
1011
1112impl RatelimiterMap {
12- pub fn new ( mut default_token : String , timeout : Duration , max_size : Option < usize > ) -> Self {
13+ pub fn new ( mut default_token : String , timeout : Duration , cap : NonZero < usize > ) -> Self {
1314 let is_bot = default_token. starts_with ( "Bot " ) ;
1415 let is_bearer = default_token. starts_with ( "Bearer " ) ;
1516
@@ -19,13 +20,7 @@ impl RatelimiterMap {
1920 default_token. insert_str ( 0 , "Bot " ) ;
2021 }
2122
22- let mut builder = Builder :: new ( ) . expiration ( timeout) ;
23-
24- if let Some ( max_size) = max_size {
25- builder = builder. max_size ( max_size) ;
26- }
27-
28- let inner = builder. build ( ) ;
23+ let inner = Tlru :: new ( cap, timeout) ;
2924
3025 let default = RateLimiter :: default ( ) ;
3126
@@ -41,13 +36,13 @@ impl RatelimiterMap {
4136 if token == self . default_token {
4237 ( self . default . clone ( ) , self . default_token . clone ( ) )
4338 } else if let Some ( entry) = self . inner . get ( token) {
44- ( entry. value ( ) . clone ( ) , token. to_string ( ) )
39+ ( entry, token. to_owned ( ) )
4540 } else {
4641 let ratelimiter = RateLimiter :: default ( ) ;
4742
48- self . inner . insert ( token. to_string ( ) , ratelimiter. clone ( ) ) ;
43+ self . inner . insert ( token. to_owned ( ) , ratelimiter. clone ( ) ) ;
4944
50- ( ratelimiter, token. to_string ( ) )
45+ ( ratelimiter, token. to_owned ( ) )
5146 }
5247 } else {
5348 ( self . default . clone ( ) , self . default_token . clone ( ) )
0 commit comments