# docopticon docopticon is yet-another argument parsing library for Rust, however, this one relies upon constructing the argument tree from the actual help text that every command-line program should have. This is instead of generating the help for every argument. ## Example ```rust use docopticon; ??? profit ``` ## TODO Stuff I need to write: ### Parsers * usage-option * usage-parameter * usage-optional-parameters () {} [] * default-in-description () {} [] * stdin - and parameter flag -- * slices / ranges of values a..b * multiple choice parameters ### Argument Tree * option levels * associated function? ## Features * **Compile-time** generation of an argument tree from a given **Usage** string slice. * `no_std` - only depends on `libc` and Rust's `core` library. * Does not require an allocator - could potentially work on embedded targets. * Also includes a set of functions to allow for `XDG-dirs` compliant saving/loading of configuration, state and data files. ## Docopt docopt is a standard that is vaguely defined by the docopt team behind the initial Python library. This library attempts to be more rigorous in the definition of the core protocol but still allowing for some flexibility when it comes to how you write your **Usage:** text. ## Credits * lapp - for initially cluing me into docopt. * [docopt.org]() - for the initial docopt specification and idea. * [burntsushi's original Rust implementation](https://github.com/docopt/docopt-rs) - for being so inefficient that I had to make my own. * [konst](https://github.com/rodrimati1992/konst) - for their `const` string magic I lifted into this library