use crate::*;
#[derive(Debug, clap::Parser)]
pub(crate) struct NoteCommand {
#[clap(subcommand)]
pub(crate) command: NoteSubcommand,
}
#[derive(Debug, clap::Subcommand)]
pub(crate) enum NoteSubcommand {
Today(TodayCommand),
#[clap(alias = "ayer")]
Yesterday,
#[clap(alias = "date")]
Day {
when: String,
},
Idea {
topic: String,
},
Todo {
topic: String,
},
Plan {
topic: Option<String>,
},
Pick {
kind: Option<CliNoteKind>,
},
#[clap(subcommand)]
Cli(clapx::subcmd::cli::CliCommand)
}
#[derive(Debug, clap::Parser)]
pub(crate) struct TodayCommand {
#[clap(subcommand)]
pub(crate) from: Option<TodaySubCommand>,
}
#[derive(Debug, clap::Subcommand)]
pub(crate) enum TodaySubCommand {
From {
when: String
}
}
#[derive(Debug, Clone, Copy, clap::ValueEnum)]
pub(crate) enum CliNoteKind {
Today,
Idea,
Todo,
Plan
}
impl From<CliNoteKind> for lib::NoteKind {
fn from(value: CliNoteKind) -> Self {
match value {
CliNoteKind::Today => lib::NoteKind::Today,
CliNoteKind::Idea => lib::NoteKind::Idea,
CliNoteKind::Todo => lib::NoteKind::Todo,
CliNoteKind::Plan => lib::NoteKind::Plan,
}
}
}