E
Size: a a a
RS
R
MV
ΑZ
multiple
, вот так работает:use structopt::clap::ArgGroup;
use structopt::StructOpt;
#[derive(Debug, StructOpt)]
#[structopt(
group = ArgGroup::with_name("verbosity").multiple(false),
)]
struct Opt {
#[structopt(long, group = "verbosity")]
verbose: bool,
#[structopt(long, group = "verbosity")]
quiet: bool,
}
fn main() {
dbg!(Opt::from_args());
}
if loglevel >= LogLevel::Debug
виместо if debug || info || warn || error { .. }
K
if loglevel >= LogLevel::Debug
виместо if debug || info || warn || error { .. }
match (args.verbose, args.quiet) {у лога ж есть енум, и так читабельно выходит
(true, _) => LevelFilter::Debug,
(_, true) => LevelFilter::Warn,
_ => LevelFilter::Info,
}
K
ΑZ
match (args.verbose, args.quiet) {у лога ж есть енум, и так читабельно выходит
(true, _) => LevelFilter::Debug,
(_, true) => LevelFilter::Warn,
_ => LevelFilter::Info,
}
args.info, args.error, args.warn
ΑZ
K
args.info, args.error, args.warn
ΑZ
K
K
ΑZ
use clap::arg_enum;
use structopt::StructOpt;
#[structopt(long = "log",
raw(possible_values = "&LogLevel::variants()", case_insensitive = "true"),
raw(default_value = "Verbose"))]
pub log_level: LogLevel,
arg_enum! {
#[derive(Debug)]
enum LogLevel {
Verbose,
Info,
Warn
}
}
K
use clap::arg_enum;
use structopt::StructOpt;
#[structopt(long = "log",
raw(possible_values = "&LogLevel::variants()", case_insensitive = "true"),
raw(default_value = "Verbose"))]
pub log_level: LogLevel,
arg_enum! {
#[derive(Debug)]
enum LogLevel {
Verbose,
Info,
Warn
}
}
K
ΑZ
SK
AL
EG