172 похожих чатов

Всем привет, вопрос по clap, может кто подскажет. Есть вот такая

структура и нужно выдавать различный дескрипшн для разных случаев, это возможно в derive Api?
pub struct Args {
#[arg(short('k'), long)]
/// SSH key location path (default is: $HOME/.ssh/id_rsa) <-- можно ли сюда как-то динамически задать строку из переменной?
pub ssh_key_path: Option<std::path::PathBuf>,
}

7 ответов

15 просмотров

Док коменты это компайл тайм инфа, т.е. тебе нужно будет как минимум для каждого дескрипшина отдельный тип завести. Типа можно завернуть в какой-то макрос и погенерить для разных кейсов разные типы добавляя #[doc] аттрибут. Второй вариант. это не через дерайв апи, а через https://docs.rs/clap/latest/clap/trait.CommandFactory.html и рефлексию в клепе. Поидее для дерайв структур этот трейт реализуется. а дальше https://docs.rs/clap/latest/clap/struct.Command.html#method.mut_arg и менять дескрипшин у аргумента нужного.

Vladimir
Док коменты это компайл тайм инфа, т.е. тебе нужно...

даже если юзать CommandFactory, строки для клэпа генерируются один раз при запуске. Если нужно менять строку во время работы - клэп не зайдет

Fred- Автор вопроса
Александр Сергеев
даже если юзать CommandFactory, строки для клэпа г...

Нужно условно компилить для разных ос, для винды один дескрипшн, для юникс другой. Так что команд фактори подойдет

Александр Сергеев
даже если юзать CommandFactory, строки для клэпа г...

может у него от переменных окружений зависит - или от файла\нейма программы - такое можно чекнуть до генерации матчера клепа. Теоретически можно даже какую-то субкоманду чекнуть, но это сложнее.

Fred
Нужно условно компилить для разных ос, для винды о...

ну если условно компилить, то тебе вообще просто атрибут можно с cfg_if задать

Fred
Нужно условно компилить для разных ос, для винды о...

#[cfg_attr(windows, doc = "windows.rs")] ну или у клепа там отдельный атрибут для хелпа можно заюзать

Vladimir
#[cfg_attr(windows, doc = "windows.rs")] ну или у ...

нихуя ти жостко виступаешь. учишь юних нациков расту

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта