PartialThis
Type-safe partial construction
-
Multi partial overloads.
let foo: = partial.done; let foo: Foo = partial.done; let mut foo = uninit; let foo: &mut Foo = partial.done; -
Field initialization methods. Can be called in any order and at most once.
// ok let p = p.foo; let p = p.bar;// ok let p = p.bar; let p = p.foo;let p = p.foo; let p = p.foo; // error -
Field access methods. Can be called after initialization.
let p = p.foo; println!;let mut p = p.foo; p.set_foo; -
Done method.Can be called after all fields are initialized.
let foo = p.done; -
Drop safe. Will call fields
dropaccording to the field initialization status and in the reverse order of initialization (the last field initialized is dropped first).let p = Somepartial; let p = p.field0; let p = p.field1; drop; // drop(field1) -> drop(field0) -> drop(Box<MaybeUninit<Some>>)