use chrono::{FixedOffset, NaiveTime};
use chrono_tz::Tz;
#[cfg(feature = "clap")]
use clap::Parser;
use getset::Getters;
use pace_time::date_time::PaceDateTime;
use typed_builder::TypedBuilder;
#[derive(Debug, Getters, TypedBuilder, Clone, PartialEq, Eq, Hash, Default)]
#[cfg_attr(feature = "clap", derive(Parser))]
#[getset(get = "pub")]
#[cfg_attr(
feature = "clap", clap(group = clap::ArgGroup::new("tz").multiple(false).required(false)))]
pub struct ResumeCommandOptions {
#[cfg_attr(
feature = "clap",
clap(short, long, value_name = "Resumed Time", visible_alias = "resumed")
)]
at: Option<NaiveTime>,
#[cfg_attr(feature = "clap", clap(short, long))]
#[getset(get = "pub")]
list: bool,
#[cfg_attr(
feature = "clap",
clap(
short = 'z',
long,
value_name = "Time Zone",
group = "tz",
visible_alias = "tz"
)
)]
time_zone: Option<Tz>,
#[cfg_attr(
feature = "clap",
clap(
short = 'Z',
long,
value_name = "Time Zone Offset",
group = "tz",
visible_alias = "tzo"
)
)]
time_zone_offset: Option<FixedOffset>,
}
impl ResumeCommandOptions {
}
#[derive(Debug, Clone, PartialEq, TypedBuilder, Eq, Hash, Default, Getters)]
#[getset(get = "pub")]
#[non_exhaustive]
pub struct ResumeOptions {
#[builder(default, setter(into))]
resume_time: Option<PaceDateTime>,
}