#[serde_with::serde_as]
#[derive(Debug,serde::Deserialize)]
#[serde(deny_unknown_fields)]
#[serde(rename_all="kebab-case")]
pub struct Rule {
#[serde(rename="match")] pub match_: crate::Match,
#[serde_as(as="Option<serde_with::FromInto<crate::SerdeDuration>>")] pub last_activity_min: Option<std::time::Duration>,
#[serde_as(as="Option<serde_with::FromInto<crate::SerdeDuration>>")] pub seed_time_min: Option<std::time::Duration>,
pub categories_allowed: Option<std::collections::HashSet<String>>,
pub include_in_score: Option<bool>,
pub pin: Option<bool>,
pub seeder_count_min: Option<u64>,
pub state_allowed: Option<std::collections::HashSet<crate::TorrentState>>,
}