Interior Mutability with Traits

Is it good to combine Cell and Trait so unique objects have their own persistent working data?

Something along the lines of:

struct O { Data: Cell<i32> }



impl T for O {
    fn Method(&self) {

impl T for O2 {
    fn Method(&self) {

What if I just want the entire object to be mutable from within a trait? (Should I?)

What about outside of the trait? (Specifically, since it’s wrapped in a Box.)

Generally the traits methods should be &mut self. Interior mutability typically should only be used when linked to unobservable data, rather than something core to the structures functionality.