#nested #update #struct #deep #macro #no-alloc

no-std deep-struct-update

嵌套结构体更新语法

1 个不稳定版本

0.1.0 2023年12月27日

#2735Rust 模式

MIT/Apache

8KB
78

Version Crates.io docs.rs Crates.io

::deep-struct-update

结构体更新语法 支持嵌套结构体。

use deep_struct_update::update;

struct Person {
    name: String,
    job: Job,
    age: u8
}

struct Job {
    position: String,
    company: String
}

let bob = Person {
    name: String::from("Bob"),
    job: Job {
        position: String::from("Programmer"),
        company: String::from("Evil Inc.")
    },
    age: 29
};

let alice = update! {
    name: String::from("Alice"),
    age: 31,
    job: {
        position: String::from("Senior Programmer")
    }
    ..bob
};

assert_eq!(alice.age, 31);
assert_eq!(alice.name, "Alice");
assert_eq!(alice.job.position, "Senior Programmer");
assert_eq!(alice.job.company, "Evil Inc.");

许可证

许可协议为 Apache License, Version 2.0 或 MIT 许可证,由您选择。
除非您明确声明,否则您提交给 deep-struct-update 的任何贡献,根据 Apache-2.0 许可证的定义,应按上述方式双重许可,不附加任何额外条款或条件。

无运行时依赖