Как передать специальные символы в качестве строкового аргумента, используя structopt? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть командная строка для поиска слова внутри файла. Я использую StructOpt, чтобы получить слово, которое пользователь хочет найти.

#[derive(Debug, StructOpt)]
pub struct Command {
    pub word_to_search: Option<String>,
}

Проблема возникает, когда вы пишете что-то вроде command -a. Я знаю, что библиотека пытается что-то сделать с -a и в struct нет -a, поэтому я попробовал: command "-a", но она отображает:

error: Found argument '-a' which wasn't expected, or isn't valid in this context

Есть ли способ передать специальные символы, такие как -a, и получить информацию (-a) с помощью StructOpt?

1 Ответ

1 голос
/ 29 апреля 2020

Вам не нужно ничего менять, вам нужно всего лишь вызвать команду, используя command -- -a. Двойной da sh используется, чтобы указать, что это конец опций, и в этом случае остальное - это слово, которое ищет пользователь.

...