add completion example

This commit is contained in:
Terts Diepraam
2023-12-19 12:06:56 +01:00
parent ef898fe43c
commit 27293fb53e
+42
View File
@@ -0,0 +1,42 @@
use std::path::PathBuf;
use uutils_args::{Arguments, Options, Value};
#[derive(Value)]
enum Number {
#[value]
One,
#[value]
Two,
#[value]
Three,
}
#[derive(Arguments)]
enum Arg {
/// Give it nothing!
#[arg("-f", "--flag")]
Flag,
// Completion is derived from the `Number` type, through the `Value` trait
/// Give it a number!
#[arg("-n N", "--number=N")]
Number(Number),
// Completion is derived from the `PathBuf` type
/// Give it a path!
#[arg("-p P", "--path=P")]
Path(PathBuf),
}
struct Settings;
impl Options<Arg> for Settings {
fn apply(&mut self, _arg: Arg) {
panic!("Compile with the 'parse-is-complete' feature!")
}
}
fn main() {
Settings.parse(std::env::args_os());
}