#from #macro #into

struct_auto_from

用于在结构体之间自动生成转换方法的简单Rust库

2个不稳定版本

0.2.0 2023年6月27日
0.1.0 2023年6月27日

#754 in 进程宏

MIT/Apache

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.0许可证定义,应如上所述双重许可,不附加任何额外条款或条件。

依赖关系

~0.7–1.1MB
~26K SLoC