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 serde::{Deserialize, Serialize};
use crate::types::Snowflake;
/// The different types of ratelimits that can be applied to a request. Includes "Baseline"-variants
/// for when the Snowflake is not yet known.
/// 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 {
AuthRegister,
AuthLogin,
@ -25,7 +27,7 @@ pub enum LimitType {
/// Unlike [`RateLimits`], this struct shows the current ratelimits, not the rate limit
/// configuration for the instance.
/// 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 bucket: LimitType,
pub limit: u64,

View File

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