From c69f0615d4ddf11fc6742c2716e777366e8fc477 Mon Sep 17 00:00:00 2001 From: dorian-faerber Date: Thu, 15 Jan 2026 16:16:48 +0100 Subject: [PATCH] feat: "serde" feature flag --- Cargo.toml | 6 +++++- src/holidays.rs | 1 + src/regions.rs | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 68b79cd..8b722c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,11 @@ keywords = ["holiday", "Germany", "Feiertage"] [dependencies] chrono = "0.4" computus = "1.0.0" - +serde = { version = "1.0", features = ["derive"], optional = true } [dev-dependencies] proptest = "0.9.1" + +[features] +default = [] +serde = ["dep:serde"] diff --git a/src/holidays.rs b/src/holidays.rs index 920167b..34d92bd 100644 --- a/src/holidays.rs +++ b/src/holidays.rs @@ -7,6 +7,7 @@ use computus; /// For public holidays use `GermanRegion` instead, since /// public holidays differ from region to region. #[derive(Clone, Copy, Debug, Eq, PartialEq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum GermanHoliday { Neujahr, HeiligeDreiKoenige, diff --git a/src/regions.rs b/src/regions.rs index ff1e05b..6f65026 100644 --- a/src/regions.rs +++ b/src/regions.rs @@ -5,6 +5,7 @@ use chrono::{Datelike, NaiveDate}; /// Holidays guaranteed to take place on sundays, e.g. easter sunday, are excluded by default. /// However, holidays with a fixed date can still fall on a sunday. #[derive(Clone, Copy, Debug, Eq, PartialEq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum GermanRegion { BadenWuerttemberg, /// * The Augsburger Friedensfest only applies to Augsburg. @@ -238,5 +239,4 @@ mod tests { assert!(BadenWuerttemberg.holidays_in_year(year).is_empty()); } } - }