2个不稳定版本
0.2.0 | 2023年6月27日 |
---|---|
0.1.0 | 2023年6月27日 |
#754 in 进程宏
9KB
89 行
结构体自动从
用于在结构体之间自动生成转换方法的简单Rust库。
在指定转换时,接收结构体类型中的所有字段必须在发送方中定义,或者在接收方中定义其默认值。
默认值属性允许您覆盖发送方的数据。
安装
[dependencies]
struct_auto_from = "0.1.0"
用法
use std::collections::HashMap;
use struct_auto_from::auto_from;
#[auto_from(UserType)]
pub struct UserModel {
id: i32,
name: String,
}
#[auto_from(UserModel)]
pub struct UserType {
#[auto_from_attr(default_value = 0)]
id: i32,
name: String,
#[auto_from_attr(default_value = Default::default())]
metadata: HashMap<String, String>,
}
fn main() {
let user_model = UserModel {
id: 1234,
name: "GvR".into(),
};
let user_type: UserType = user_model.into();
// use user_type without the need for manual conversion
// user_type.id == 0
// user_type.metadata.is_empty() == true
}
许可证
许可如下
- Apache许可证第2版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何提交给工作内容的贡献,根据Apache-2.0许可证定义,应如上所述双重许可,不附加任何额外条款或条件。
依赖关系
~0.7–1.1MB
~26K SLoC