#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize), serde(default, rename_all = "snake_case"))]
#[derive(Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
#[cfg_attr(feature = "clap", derive(clap::Parser))]
pub struct WatcherConfig {
#[cfg_attr(feature = "clap", clap(long, short))]
pub(crate) target: Option<String>,
#[cfg_attr(feature = "clap", clap(long, short))]
pub(crate) output: Option<String>,
#[cfg_attr(feature = "clap", clap(long, short))]
pub(crate) input: Option<String>,
#[cfg_attr(feature = "clap", arg(long, short, action = clap::ArgAction::SetTrue))]
pub(crate) verbose: bool,
}
impl WatcherConfig {
pub fn new() -> Self {
Self::default()
}
pub fn target(&self) -> Option<&String> {
self.target.as_ref()
}
pub fn output(&self) -> Option<&String> {
self.output.as_ref()
}
pub fn input(&self) -> Option<&String> {
self.input.as_ref()
}
}