Rust controls mutable data by the borrow checker system: allow sharing OR mutation but not both at the same time.