use clap::{Args, ValueEnum};
use crate::cli::SharedScopeArgs;
#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum)]
pub enum InspectCheck {
All,
Orphans,
BrokenLinks,
DanglingRefs,
Unreferenced,
Graph,
}
impl From<InspectCheck> for talon_core::InspectCheck {
fn from(check: InspectCheck) -> Self {
match check {
InspectCheck::All => Self::All,
InspectCheck::Orphans => Self::Orphans,
InspectCheck::BrokenLinks => Self::BrokenLinks,
InspectCheck::DanglingRefs => Self::DanglingRefs,
InspectCheck::Unreferenced => Self::Unreferenced,
InspectCheck::Graph => Self::Graph,
}
}
}
#[derive(Debug, Clone, Args)]
#[command(about = "Inspect your vault for structural signals and patterns.")]
pub struct InspectArgs {
#[arg(value_enum, ignore_case = true)]
pub check: Option<InspectCheck>,
#[command(flatten)]
pub scope: SharedScopeArgs,
#[arg(long, short = 'n', global = true)]
pub limit: Option<u16>,
}