#[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 pin: Option<bool>,
	pub seeder_count_min: Option<u64>,
	pub state_allowed: Option<std::collections::HashSet<crate::TorrentState>>,
}
