Expand description

Struct update syntax with support for nested structs.

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.");

Macros