Except with using Rust like this you're using it like C#. You don't get to enjoy the type system to express your invariants.