-
Notifications
You must be signed in to change notification settings - Fork 9
Design Requirements
Jeff Garland edited this page May 15, 2015
·
5 revisions
- Colocate option specification: names and aliases, doc string, type default values, size of array (repetition count)
- Error checking as early as possible
- Merging multiple configurations with conflict handling per option
- Positional arguments
- Arguments with multiple parameters, e.g. arrays on the command line
- Explicit refresh of data source
- User defined types, e.g. The Garland Date Time
- Dynamic/run-time configuration of options in the ParameterSpec. Compile time addition of new types.
- Custom data sources
- At least one command-line data source built in to library (should this be program options?)
- Data sources return tree-like data
- API will permit substitution rules
##Rejected Requirements
- Conflict resolution between options (out of library scope
- Static type checking (too difficult, usability issues, collides with dynamic changes, also Michal's library https://github.com/griwes/ReaverLib already provides this)
- Lazy data fetching from data source (conflict with "error checking as early as possible" requirement)
- Non-string keys (reserved for 2.0)