talon_cli/cli/
related_args.rs1use clap::{Args, ValueEnum};
4
5use crate::cli::SharedScopeArgs;
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum)]
9pub enum CliDirection {
10 Outgoing,
12 Backlinks,
14 Both,
16}
17
18impl From<CliDirection> for talon_core::Direction {
19 fn from(dir: CliDirection) -> Self {
20 match dir {
21 CliDirection::Outgoing => Self::Outgoing,
22 CliDirection::Backlinks => Self::Backlinks,
23 CliDirection::Both => Self::Both,
24 }
25 }
26}
27
28#[derive(Debug, Clone, Args)]
30#[command(about = "Find related notes via wikilink traversal.")]
31pub struct RelatedArgs {
32 pub path: String,
34
35 #[arg(long)]
37 pub depth: Option<u8>,
38
39 #[arg(long, value_enum, ignore_case = true)]
41 pub direction: Option<CliDirection>,
42
43 #[command(flatten)]
44 pub scope: SharedScopeArgs,
45}