Как установить флаг required unless с помощью clap в Rust

#rust #command-line-interface #clap

#Ржавчина #интерфейс командной строки #clap

Вопрос:

Итак, я пытаюсь написать реализацию cp с использованием Rust, но я застрял в проблеме. Есть флаг -t=DIRECTORY и обычный DESTINATION . Я застрял в этом здесь, если -t опция DESTINATION не должна быть предоставлена, но если -t не задана DESTINATION , должна быть предоставлена. Также есть SOURCE флаг, который является как обязательным, так и множественным

Комментарии:

1. Просто … проверьте это вручную после синтаксического анализа? clap не может встроить хук для каждой возможной перестановки всего, но ничто не мешает вам писать код, делающий это для вашего специального поведения.

Ответ №1:

Я не видел опции для этого в clap, я предлагаю вам сделать это самостоятельно. Я имею в виду использование clap для анализа аргумента и вручную выдавать ошибку, если найдены оба параметра.