From a8536df67e2d409a79201a54f1ba4cbad0c0ae00 Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Fri, 14 Apr 2023 22:40:13 +0200 Subject: [PATCH] make send_request return Option --- src/limit.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/limit.rs b/src/limit.rs index 04ca815..0aacd3a 100644 --- a/src/limit.rs +++ b/src/limit.rs @@ -32,7 +32,11 @@ impl LimitedRequester { } } - pub async fn send_request(&mut self, request: RequestBuilder, limit_type: LimitType) { + pub async fn send_request( + &mut self, + request: RequestBuilder, + limit_type: LimitType, + ) -> Option { if self.can_send_request(limit_type) { let built_request = request .build() @@ -42,12 +46,14 @@ impl LimitedRequester { Ok(is_response) => is_response, Err(e) => panic!("An error occured while processing the response: {}", e), }; - self.update_limits(response, limit_type); + self.update_limits(&response, limit_type); + return Some(response); } else { self.requests.push_back(TypedRequest { request: request, limit_type: limit_type, }); + return None; } } @@ -62,7 +68,7 @@ impl LimitedRequester { } } - pub fn can_send_request(&mut self, limit_type: LimitType) -> bool { + fn can_send_request(&mut self, limit_type: LimitType) -> bool { let limits = self.limits_rate.get(&limit_type); match limits { @@ -77,7 +83,7 @@ impl LimitedRequester { } } - fn update_limits(&mut self, response: Response, limit_type: LimitType) { + fn update_limits(&mut self, response: &Response, limit_type: LimitType) { // TODO: Make this work let remaining = match response.headers().get("X-RateLimit-Remaining") { Some(remaining) => remaining.to_str().unwrap().parse::().unwrap(),