pub fn from_slice<T: Facet<'static>>(args: &[&str]) -> DriverOutcome<T>Expand description
Parse command-line arguments from a slice.
This is a convenience function for CLI-only parsing (no env vars, no config files).
For layered configuration, use builder instead.
This function is particularly useful for testing, as you can provide arguments
directly without modifying std::env::args().
§Example
use facet::Facet;
use figue::{self as args, FigueBuiltins};
#[derive(Facet, Debug)]
struct Args {
/// Enable verbose mode
#[facet(args::named, args::short = 'v', default)]
verbose: bool,
/// Input file
#[facet(args::positional)]
input: String,
#[facet(flatten)]
builtins: FigueBuiltins,
}
// Parse with long flag
let args: Args = figue::from_slice(&["--verbose", "file.txt"]).unwrap();
assert!(args.verbose);
assert_eq!(args.input, "file.txt");
// Parse with short flag
let args: Args = figue::from_slice(&["-v", "file.txt"]).unwrap();
assert!(args.verbose);
// Parse without optional flag
let args: Args = figue::from_slice(&["file.txt"]).unwrap();
assert!(!args.verbose);§Errors
Returns an error (via DriverOutcome) if:
- Required arguments are missing
- Unknown flags are provided
- Type conversion fails (e.g., “abc” for a number)
--help,--version, or--completionsis requested (success exit)