Was there a proposal for this at some point? For example, in this code below, I check for an optional, and then want to call another mutating method. To do this in current Rust, I believe I’ll need to clone the thing.
Sometimes I see advice to group fields into sub-structs. But the problem with that is that different methods need different combinations of fields, so there is not one “correct” way to partition the fields of your struct.
impl A {
fn method1(&mut self) {
if let Some(thing) = &self.optional_thing {
self.method2(thing); // Not allowed...
}
}
fn method2(&mut self, thing: &Thing)
where [I promised not to touch self.optional_thing]
{
...
}
}