in modifier for structs. in modifier can negatively affect performance if the struct I'm passing is NOT readonly, because it might create defensive copies - however, how can I avoid defensive copies without marking my struct readonly? Is there a rule of thumb when defensive copies are created?