Я использую structopt , чтобы проанализировать аргументы командной строки для моего приложения ржавчины.Этими флагами являются следующие: query
(позиционный) и case_sensitive
(необязательный).
#[derive(StructOpt, Debug)]
pub struct Config {
/// Query to search for.
#[structopt(parse(try_from_str = "parse_regex"))]
query: Regex,
/// Specify whether or not the query is case sensitive.
#[structopt(long)]
case_sensitive: bool,
}
В конечном итоге я хочу написать parse_regex
, который создает регулярное выражение изаргумент строки запроса.
fn parse_regex(src: &str) -> Result<Regex, Error> {
let case_sensitive = true; // !!! problem here: how to grab the value of the `case_sensitive` flag?
RegexBuilder::new(src).case_insensitive(!case_sensitive).build()
}
Мне интересно, возможно ли, чтобы пользовательская функция синтаксического анализа захватила значение другого флага (в данном случае case_sensitive
), чтобыдинамически анализировать свой собственный флаг.