I want to add a command line flag. It's a flag, so it does not take an argument, it is either present or not. I also need to know how to read the flag, either TRUE or FALSE.
This is the code for defining the flag:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.required(false)
.help("I want metal micky"),
)
I am trying to read the value like this:
let z = matches.value_of("metal");
However it is resulting in None
when I print it:
println!("FLAG: {:?}", z);
It is None
even when I specify the flag on the command line.
Don't know if this is the "approved" method but I use Args::takes_value
:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.required(false)
.takes_value(false)
.help("I want metal micky"),
)
Then check if the flag was passed with matches.is_present("metal")
This answer is outdated. What you want is:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.takes_value(false)
.help("I want metal mickey")
Then you check with:
matches.is_present("metal")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With