2 个版本
0.1.1 | 2021 年 2 月 14 日 |
---|---|
0.1.0 | 2021 年 2 月 14 日 |
#1819 在 编码
每月 54 次下载
8KB
95 行
yaml-patch
将 serde_yaml::Value
合并,以实现分层配置
目的
此 crate 扩展了任何实现了 serde::Serialize
和 serde::Deserialize
的类型,并添加了四个额外的方法
patch_from_value
patch_from_str
patch_from_reader
patch_from_key_val
例如,给定一个类型
#[derive(Serialize, Deserialize)]
struct Configuration {
a: f64,
b: String,
}
您可以使用可选键 "a"
或 "b"
更新实例的数据成员,从 serde_yaml::Value::Mapping
中。您还可以从文件(或任何有效的 YAML 内容的 std::io::Read
)中修补实例
let file = File::open("config.yaml")?;
config.patch_from_reader(file)?;
此 crate 还支持键路径样式 YAML 语法扩展:例如 event.patch_from_key_val("date.year=2021")
。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
yaml-patch = "*"
依赖关系
~1.9–2.6MB
~54K SLoC