use derive_more::IsVariant;
use crate::{HasSample, TimeOffInput};
use clap::Subcommand;
#[derive(Subcommand, Debug, Clone, IsVariant, PartialEq, Default)]
pub enum TargetItems {
#[default]
Services,
ServicesOff(TimeOffInput),
Expenses,
}
impl HasSample for TargetItems {
fn sample() -> Self {
Self::Services
}
fn sample_other() -> Self {
Self::ServicesOff(TimeOffInput::sample_other())
}
}
#[cfg(test)]
mod tests {
use super::*;
type Sut = TargetItems;
#[test]
fn equality() {
assert_eq!(Sut::sample(), Sut::sample());
assert_eq!(Sut::sample_other(), Sut::sample_other());
}
#[test]
fn inequality() {
assert_ne!(Sut::sample(), Sut::sample_other());
}
}