Rust is often treated like it has a split between mutable and immutable state, but it's really a split between unique and shared state. Shared state can be mutated if certain invariants are held, which types that provide "interior mutability" as its called enforce.
https://doc.rust-lang.org/reference/interior-mutability.html