error non-exhaustive
What it means#
A match MUST be exhaustive: every possible value must be covered by some arm (§5.5). For an @open enum used outside its package, an arm _ is required (§4.4).
Example#
enum Role { User, Support, Admin }
fn label(r: Role) -> str {
match r { // <- non-exhaustive (Admin is not covered)
Role.User => "user"
Role.Support => "support"
}
}error
non-exhaustive
How to fix#
enum Role { User, Support, Admin }
fn label(r: Role) -> str {
match r {
Role.User => "user"
Role.Support => "support"
Role.Admin => "admin"
}
}Add the missing arms, or a wildcard arm _ => .... Prefer listing the cases: a wildcard hides new variants added later.