1use clap::{Parser, Subcommand};
4
5#[derive(Parser, Debug)]
7#[command(name = "tl")]
8#[command(about = "AI-powered translation CLI tool")]
9#[command(version)]
10pub struct Args {
11 pub file: Option<String>,
13
14 #[arg(short = 't', long = "to")]
16 pub to: Option<String>,
17
18 #[arg(short = 'p', long)]
20 pub provider: Option<String>,
21
22 #[arg(short = 'm', long)]
24 pub model: Option<String>,
25
26 #[arg(short = 'n', long)]
28 pub no_cache: bool,
29
30 #[arg(short = 'w', long)]
32 pub write: bool,
33
34 #[command(subcommand)]
35 pub command: Option<Command>,
36}
37
38#[derive(Subcommand, Debug)]
40pub enum Command {
41 Languages,
43 Providers {
45 provider: Option<String>,
47 },
48 Chat {
50 #[arg(short = 't', long = "to")]
52 to: Option<String>,
53
54 #[arg(short = 'p', long)]
56 provider: Option<String>,
57
58 #[arg(short = 'm', long)]
60 model: Option<String>,
61 },
62}