Elevator Pitch
- Encode invariants in Rust types by “parsing” untrusted/weakly-typed values into stronger newtypes, so illegal states become unrepresentable and checks happen once up front.
Key Takeaways
- Prefer strengthening inputs (e.g.,
NonZeroF32, NonEmptyVec<T>) over weakening outputs (e.g., returning Option) to avoid repeated checks and runtime surprises.
- Parse early: push validation to constructors/conversions so the rest of the code can rely on invariants without re-checking.
- Type-driven design improves robustness and refactor-safety by making invalid states impossible to represent in the first place.
Most Memorable Quotes
- “we should make illegal states unrepresentable”
- “proving invariants should be done as early as possible”
- “I love creating more types. Five million types for everyone please.”
Source URL•Original: 3515 words
•Summary: 120 words