1use clap::{ArgEnum, Parser, Subcommand};
2
3#[derive(Parser)]
4#[clap(author, version, about, long_about = None)]
5pub struct Args {
6 #[clap(subcommand)]
7 pub command: Commands,
8}
9
10#[derive(Subcommand)]
11pub enum Commands {
12 #[cfg(feature = "visualize")]
13 Ast {
15 #[clap(short = 'T', long = "format", value_enum)]
16 format: Format,
17
18 #[clap(value_parser)]
20 query: String,
21 },
22 Repl,
24}
25
26#[derive(ArgEnum, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
27pub enum Format {
28 Json,
30 Dot,
32 Svg,
34 Png,
36 Display,
38}