From 6f3bd049635cdafa44c66a79aeb816e77cdbd41a Mon Sep 17 00:00:00 2001 From: Flori <39242991+bitfl0wer@users.noreply.github.com> Date: Fri, 14 Jul 2023 17:38:54 +0200 Subject: [PATCH] Enable saving and loading LimitsConfiguration (#152) Impl Serialize, Deserialize for LimitsConfiguration and children --- src/api/policies/instance/ratelimits.rs | 6 ++++-- src/instance.rs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/api/policies/instance/ratelimits.rs b/src/api/policies/instance/ratelimits.rs index 125af32..e32a835 100644 --- a/src/api/policies/instance/ratelimits.rs +++ b/src/api/policies/instance/ratelimits.rs @@ -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 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 for more information. -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct Limit { pub bucket: LimitType, pub limit: u64, diff --git a/src/instance.rs b/src/instance.rs index 15c513c..d22d935 100644 --- a/src/instance.rs +++ b/src/instance.rs @@ -25,7 +25,7 @@ pub struct Instance { pub client: Client, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct LimitsInformation { pub ratelimits: HashMap, pub configuration: RateLimits,