3 个版本 (破坏性更新)
0.3.0 | 2023年10月2日 |
---|---|
0.2.0 | 2023年9月27日 |
0.1.0 | 2023年9月26日 |
#417 in 配置
在 cazzo 中使用
24KB
523 行
图嘎 - 分层配置库。
增强 serde
反序列化,提供可定制的更新机制。
用法
此 crate 提供了 Figa
trait,用于使用 serde
反序列化来更新值。该 trait 使用单个方法 update
。
魔法在派生宏中发生。启用 "derive"
功能以使其从 figa
crate 中重新导出,或者直接使用 figa-proc
crate。
派生宏目前仅支持没有泛型的结构体。用户可以使用 #[figa(*)]
属性来定制结构体字段的更新行为
#[figa(replace)]
告诉代码生成器字段值必须替换为新值。#[figa(append)]
对集合有效,告诉代码生成器该字段是集合,并且必须添加新元素。对于映射,如果存在具有相同键的值,它将被新值替换。对于Vec
和String
,追加的值将按预期添加到末尾。#[figa(update)]
通知代码生成器该字段必须更新。这意味着将递归地调用Figa::update
。对于集合,这意味着使用Figa
特性更新具有相同键或索引的值,并将新值追加。
可选的 load
功能
提供了一种有见地的从预定义位置加载 .toml
配置文件的方法。
许可证
根据以下之一许可
- Apache License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您提交的任何有意包含在作品中的贡献,将如上双许可,没有任何额外条款或条件。
依赖关系
~110–680KB
~12K SLoC