1use crate::{Future, Github};
3use serde::Deserialize;
4
5pub struct RateLimit {
6 github: Github,
7}
8
9impl RateLimit {
10 #[doc(hidden)]
11 pub fn new(github: Github) -> Self {
12 Self { github }
13 }
14
15 pub fn get(&self) -> Future<RateLimitStatus> {
17 self.github.get("/rate_limit")
18 }
19}
20
21#[derive(Debug, Deserialize)]
24pub struct RateLimitStatus {
25 pub resources: RateLimitResourcesStatus,
26}
27
28#[derive(Debug, Deserialize)]
29pub struct RateLimitResourcesStatus {
30 pub core: RateLimitResourceStatus,
31 pub search: RateLimitResourceStatus,
32 pub graphql: RateLimitResourceStatus,
33}
34
35#[derive(Debug, Deserialize)]
36pub struct RateLimitResourceStatus {
37 pub limit: u32,
38 pub remaining: u32,
39 pub reset: u32, }