Using Rust types to guarantee domain invariants | Dark Hacker News