119625d8cSopenharmony_ci**This requires enabling the [`cargo` feature flag][crate::_features].**
219625d8cSopenharmony_ci
319625d8cSopenharmony_ciYou can use `--` to escape further arguments.
419625d8cSopenharmony_ci
519625d8cSopenharmony_ciLet's see what this looks like in the help:
619625d8cSopenharmony_ci```console
719625d8cSopenharmony_ci$ escaped-positional --help
819625d8cSopenharmony_ciA simple to use, efficient, and full-featured Command Line Argument Parser
919625d8cSopenharmony_ci
1019625d8cSopenharmony_ciUsage: escaped-positional[EXE] [OPTIONS] [-- <SLOP>...]
1119625d8cSopenharmony_ci
1219625d8cSopenharmony_ciArguments:
1319625d8cSopenharmony_ci  [SLOP]...  
1419625d8cSopenharmony_ci
1519625d8cSopenharmony_ciOptions:
1619625d8cSopenharmony_ci  -f             
1719625d8cSopenharmony_ci  -p <PEAR>      
1819625d8cSopenharmony_ci  -h, --help     Print help
1919625d8cSopenharmony_ci  -V, --version  Print version
2019625d8cSopenharmony_ci
2119625d8cSopenharmony_ci```
2219625d8cSopenharmony_ci
2319625d8cSopenharmony_ciHere is a baseline without any arguments:
2419625d8cSopenharmony_ci```console
2519625d8cSopenharmony_ci$ escaped-positional
2619625d8cSopenharmony_ci-f used: false
2719625d8cSopenharmony_ci-p's value: None
2819625d8cSopenharmony_ci'slops' values: []
2919625d8cSopenharmony_ci
3019625d8cSopenharmony_ci```
3119625d8cSopenharmony_ci
3219625d8cSopenharmony_ciNotice that we can't pass positional arguments before `--`:
3319625d8cSopenharmony_ci```console
3419625d8cSopenharmony_ci$ escaped-positional foo bar
3519625d8cSopenharmony_ci? failed
3619625d8cSopenharmony_cierror: unexpected argument 'foo' found
3719625d8cSopenharmony_ci
3819625d8cSopenharmony_ciUsage: escaped-positional[EXE] [OPTIONS] [-- <SLOP>...]
3919625d8cSopenharmony_ci
4019625d8cSopenharmony_ciFor more information, try '--help'.
4119625d8cSopenharmony_ci
4219625d8cSopenharmony_ci```
4319625d8cSopenharmony_ci
4419625d8cSopenharmony_ciBut you can after:
4519625d8cSopenharmony_ci```console
4619625d8cSopenharmony_ci$ escaped-positional -f -p=bob -- sloppy slop slop
4719625d8cSopenharmony_ci-f used: true
4819625d8cSopenharmony_ci-p's value: Some("bob")
4919625d8cSopenharmony_ci'slops' values: ["sloppy", "slop", "slop"]
5019625d8cSopenharmony_ci
5119625d8cSopenharmony_ci```
5219625d8cSopenharmony_ci
5319625d8cSopenharmony_ciAs mentioned, the parser will directly pass everything through:
5419625d8cSopenharmony_ci```console
5519625d8cSopenharmony_ci$ escaped-positional -- -f -p=bob sloppy slop slop
5619625d8cSopenharmony_ci-f used: false
5719625d8cSopenharmony_ci-p's value: None
5819625d8cSopenharmony_ci'slops' values: ["-f", "-p=bob", "sloppy", "slop", "slop"]
5919625d8cSopenharmony_ci
6019625d8cSopenharmony_ci```
61