Enable saving and loading LimitsConfiguration (#152)

Impl Serialize, Deserialize for LimitsConfiguration and children
This commit is contained in:
Flori 2023-07-14 17:38:54 +02:00 committed by GitHub
parent 1163b32460
commit 6f3bd04963
2 changed files with 5 additions and 3 deletions

View File

@ -1,11 +1,13 @@
use std::hash::Hash; use std::hash::Hash;
use serde::{Deserialize, Serialize};
use crate::types::Snowflake; use crate::types::Snowflake;
/// The different types of ratelimits that can be applied to a request. Includes "Baseline"-variants /// The different types of ratelimits that can be applied to a request. Includes "Baseline"-variants
/// for when the Snowflake is not yet known. /// for when the Snowflake is not yet known.
/// See <https://discord.com/developers/docs/topics/rate-limits#rate-limits> for more information. /// See <https://discord.com/developers/docs/topics/rate-limits#rate-limits> for more information.
#[derive(Clone, Copy, Eq, PartialEq, Debug, Default, Hash)] #[derive(Clone, Copy, Eq, PartialEq, Debug, Default, Hash, Serialize, Deserialize)]
pub enum LimitType { pub enum LimitType {
AuthRegister, AuthRegister,
AuthLogin, AuthLogin,
@ -25,7 +27,7 @@ pub enum LimitType {
/// Unlike [`RateLimits`], this struct shows the current ratelimits, not the rate limit /// Unlike [`RateLimits`], this struct shows the current ratelimits, not the rate limit
/// configuration for the instance. /// configuration for the instance.
/// See <https://discord.com/developers/docs/topics/rate-limits#rate-limits> for more information. /// See <https://discord.com/developers/docs/topics/rate-limits#rate-limits> for more information.
#[derive(Debug, Clone)] #[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Limit { pub struct Limit {
pub bucket: LimitType, pub bucket: LimitType,
pub limit: u64, pub limit: u64,

View File

@ -25,7 +25,7 @@ pub struct Instance {
pub client: Client, pub client: Client,
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LimitsInformation { pub struct LimitsInformation {
pub ratelimits: HashMap<LimitType, Limit>, pub ratelimits: HashMap<LimitType, Limit>,
pub configuration: RateLimits, pub configuration: RateLimits,