rust_analyzer_modules/
options.rs1use clap::Args;
6use std::path::PathBuf;
7
8#[derive(Args, Clone, PartialEq, Eq, Debug, Default)]
9pub struct GeneralOptions {
10 #[arg(long, short)]
12 pub verbose: bool,
13}
14
15#[derive(Args, Clone, PartialEq, Eq, Debug)]
16pub struct ProjectOptions {
17 #[arg(long)]
19 pub lib: bool,
20
21 #[arg(long, value_name = "NAME")]
23 pub bin: Option<String>,
24
25 #[arg(long, short, value_name = "SPEC")]
27 pub package: Option<String>,
28
29 #[arg(long)]
31 pub no_default_features: bool,
32
33 #[arg(long)]
35 pub all_features: bool,
36
37 #[arg(long, value_name = "FEATURES")]
40 pub features: Vec<String>,
41
42 #[arg(long, value_name = "TARGET")]
44 pub target: Option<String>,
45
46 #[arg(long, value_name = "PATH", default_value = ".")]
48 pub manifest_path: PathBuf,
49}
50
51impl Default for ProjectOptions {
52 fn default() -> Self {
53 Self {
54 lib: false,
55 bin: None,
56 package: None,
57 no_default_features: false,
58 all_features: false,
59 features: vec![],
60 target: None,
61 manifest_path: PathBuf::from("."),
62 }
63 }
64}