1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
pub struct RateLimitStatus {
    pub limit: i32,
    pub remaining: i32,
    pub reset: i64,
}

impl RateLimitStatus {
    pub fn reset_date_time(&self) -> chrono::DateTime<chrono::Utc> {
        use chrono::TimeZone;
        chrono::Utc.timestamp(self.reset, 0)
    }
}

#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct RateLimitStatusResponse {
    pub rate_limit_context: RateLimitContext,
    pub resources: HashMap<String, HashMap<String, RateLimitStatus>>,
}

#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct RateLimitContext {
    pub access_token: String,
}