Aren't all the `(*role)` in their code "mutable references" too?
(*role).name = "basic"; (*role).name = "basic";Basically, if you have something like
let v = vec![1,2,3];
v = vec![4,5,6]; // Here vec![1,2,3] is dropped otherwise we would be leakingYou mention ptr::write() but it is not used here, and I don't see how you could use it to write to a field?