Error code E0005
Patterns used to bind names must be irrefutable, that is, they must guarantee that a name will be extracted in all cases.
Erroneous code example:
#![allow(unused)]
fn main() {
let x = Some(1);
let Some(y) = x;
// error: refutable pattern in local binding: `None` not covered
}
If you encounter this error you probably need to use a match or if let to
deal with the possibility of failure. Example:
#![allow(unused)]
fn main() {
let x = Some(1);
match x {
Some(y) => {
// do something
},
None => {}
}
// or:
if let Some(y) = x {
// do something
}
}