The `#[non_exhaustive]` attribute marks a Rust type as open to additional fields or enum variants in future versions. It is used mostly with enums, which remain usable while requiring outside match expressions to include a final fallback check. section 13.1.5
Matching a future-proof enum
When matching an externally defined `#[non_exhaustive]` enum, handle the known variants and then add a final fallback case. That fallback protects the match if a later version adds another variant. section 13.1.5
