[self]: https://gitlab.com/konnorandrews/deep-struct-update [`update`]: https://docs.rs/deep-struct-update/0.1.0/deep_struct_update/macro.update.html [![Version](https://img.shields.io/static/v1?label=version&message=0.1.0&color=informational)]() [![Crates.io](https://img.shields.io/crates/v/deep-struct-update)](https://crates.io/crates/deep-struct-update) [![docs.rs](https://img.shields.io/docsrs/deep-struct-update)](https://docs.rs/deep-struct-update/0.1.0/deep_struct_update/) [![Crates.io](https://img.shields.io/crates/l/deep-struct-update)](#license) # `::deep-struct-update` [Struct update syntax](https://doc.rust-lang.org/book/ch05-01-defining-structs.html#creating-instances-from-other-instances-with-struct-update-syntax) with support for nested structs. ```rust 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."); ```
#### License Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in deep-struct-update by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.