- Use
eyrewithbail!for early returns - ALWAYS add error context with
wrap_err()at the callee (where error occurs), not caller - Add context even if it feels verbose - clarity > brevity
- Early return pattern everywhere - fail fast
- Maximum 3 levels of nesting - refactor if deeper