2个版本
使用旧的Rust 2015
0.0.2 | 2016年6月12日 |
---|---|
0.0.1 | 2016年6月12日 |
#64 in #valid
170KB
3K SLoC
这个crate为TOML文件提供验证,以确保从文件中读取的值适用于应用程序。
目前该crate仅支持从TOML文件中读取字符串、usize、u16和持续时间元素。usize和u16元素是对TOML数字的基本定制,其范围限制在有效值内。同样,持续时间元素是格式为"##d ##h ##m ##s ##ms"的特殊字符串。
计划添加更多数据类型,但到目前为止,我只创建了读取配置文件所需的数据类型。
给定一个TOML文件,例如
threads = 16
[database]
host = "localhost"
port = 5432
您可以使用以下代码访问数据
use valid_toml::{TomlDef, ItemStr, ItemUsize, ItemU16};
# fn main() {
let mut def = TomlDef::new()
.add(ItemUsize::with_name("threads").min(1).max(32).default(4))
.add(TomlDef::with_name("database")
.add(ItemStr::with_name("host").default("localhost"))
.add(ItemU16::with_name("port").default(5432)));
// Load the contents of the TOML file into the string "file" and call
// TomlDef::parse_toml::<T:AsRef<str>>(input : T ) to parse it. Or just call
// TomlDef::load_toml::<P : AsRef<Path>>(file : P ) to have the crate load it.
match def.parse_toml(file) {
Ok(data) => {
assert_eq!(data.get_usize("threads"), 16);
assert_eq!(data.get_str("database.host"), "localhost");
assert_eq!(data.get_u16("database.port"), 5432);
},
Err(issues) => {
println!("Error reading the configuration file: ");
for err in issues.errors.iter() {
println!(" {}", err);
}
}
}
依赖项
~595KB
~12K SLoC