| own |
mutable |
mutate |
valid with Copy, but doesn’t mutate the original — mut self consumes a copy |
| own |
mutable |
transform |
valid, but mut is unnecessary — the method never writes through self |
| own |
immutable |
mutate |
no — contradiction (immutable + mutate E0594) |
| own |
immutable |
transform |
valid, but E0382 if reused without Copy |
| borrow |
mutable |
mutate |
valid — mutates original in place (test_mutation passes) |
| borrow |
mutable |
transform |
valid — creates new Self, original unchanged; &mut self doesn’t change transformation behaviour |
| borrow |
immutable |
mutate |
no — contradiction (immutable + mutate) |
| borrow |
immutable |
transform |
valid |