1 unstable release
0.1.6 | Aug 16, 2024 |
---|---|
0.1.5 |
|
#279 in Configuration
14KB
233 lines
rusty-whsp
A flexible and type-safe configuration parsing library for Rust command-line applications.
Table of Contents
Features
- 🚀 Easy-to-use API for defining configuration options
- 🔢 Support for string, number, and boolean option types
- 📚 Single and multiple value options
- ✅ Automatic input validation
- 🌍 Default value setting from environment variables
- 🔤 Short and long command-line option support
Installation
Add this to your Cargo.toml
:
[dependencies]
rusty-whsp = "0.1.6"
Quick Start
Here's a simple example to get you started:
use rusty_whsp::{Whsp, WhspOptions, ConfigOptionBase, ValidValue, Validator};
use std::collections::HashMap;
fn main() {
let mut whsp = Whsp {
config_set: HashMap::new(),
short_options: HashMap::new(),
options: WhspOptions {
allow_positionals: true,
env_prefix: Some("MYAPP".to_string()),
usage: None,
},
};
whsp.opt(HashMap::from([(
"config".to_string(),
ConfigOptionBase {
config_type: "string".to_string(),
short: Some("c".to_string()),
default: None,
description: Some("Configuration file path".to_string()),
validate: Some(Validator::None),
multiple: false,
},
)]));
let args: Vec<String> = std::env::args().collect();
let parsed_values = whsp.parse_raw(args[1..].to_vec());
println!("Parsed values: {:?}", parsed_values);
}
Documentation
For detailed documentation, please refer to the Documentation file.
Examples
Check out the examples directory for more usage examples.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by rusty-libraries