Aqui vc definiu as opções de linha de comando:
Arg::new("target").short('t').long("Target Number")
Arg::new("list").short('l').long("List")
Ou seja, o "target" pode usar a opção curta -t
ou a opção longa --Target\ Number
(tive que usar \
porque tem um espaço, o que não é usual em opções longas). Da mesma forma, a lista de números deve usar -l
ou --List
.
Sendo assim, bastaria rodar usando estas formas:
cargo run -- -t 3 -l 1,2,3,4,5
Ou:
cargo run -- --Target\ Number 3 --List 1,2,3,4,5
Ou:
cargo run -- --Target\ Number 3 -l 1,2,3,4,5
Ou:
cargo run -- -t 3 --List 1,2,3,4,5
Para ver todas as opções disponíveis, basta rodar cargo run -- --help
, que a saída será:
Usage: rusttest [OPTIONS]
Options:
-t, --Target Number <target>
-l, --List <list>
-h, --help Print help
Mas como já dito, usar espaço não é comum em opções longas. Se eu fizesse somente --Target Number
o shell entende que a opção é --Target
e Number
é o respectivo valor. Por isso precisei usar a \
e ficou --Target\ Number
, pois assim ele entende que o espaço faz parte do nome da opção. Mas eu sugiro mudar, poderia ser por exemplo --target-number
, que é uma forma muito mais comum em aplicações de linha de comando.
Por fim, vale também consultar a documentação do Clap.