#[derive(Project)]Expand description
Derive macro for implementing the Project trait on structs.
This macro automatically generates a Project implementation that allows
decomposing a struct binding into separate bindings for each field.
§Examples
ⓘ
use waterui::reactive::{Binding, binding, project::Project};
use waterui_macros::Project;
#[derive(Project, Clone)]
struct Person {
name: String,
age: u32,
}
let person_binding: Binding<Person> = binding(Person {
name: "Alice".to_string(),
age: 30,
});
let projected = person_binding.project();
projected.name.set("Bob".to_string());
projected.age.set(25u32);
let person = person_binding.get();
assert_eq!(person.name, "Bob");
assert_eq!(person.age, 25);