From 61ba8eaec6502674104b77666dc89f8bc052e7ad Mon Sep 17 00:00:00 2001 From: wiegratz Date: Tue, 12 Nov 2024 11:43:43 +0100 Subject: [PATCH] fix(stmt)!: match anonymous and named quotas --- src/stmt.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/stmt.rs b/src/stmt.rs index 5382224..ffc5243 100644 --- a/src/stmt.rs +++ b/src/stmt.rs @@ -33,10 +33,8 @@ pub enum Statement { /// anonymous or named counter. Counter(Counter), Mangle(Mangle), - Quota(Quota), - #[serde(rename = "quota")] - /// reference to a named quota object - QuotaRef(String), + /// anonymous or named quota. + Quota(QuotaOrQuotaRef), // TODO: last Limit(Limit), @@ -155,6 +153,16 @@ pub struct Mangle { pub value: Expression, } +#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)] +#[serde(untagged)] +/// Represents an anonymous or named quota object. +pub enum QuotaOrQuotaRef { + /// Anonymous quota object. + Quota(Quota), + /// Reference to a named quota object. + QuotaRef(String), +} + #[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)] /// Creates an anonymous quota which lives in the rule it appears in. pub struct Quota {