| An array or slice pattern required more elements than were present in the | |
| matched array. | |
| Example of erroneous code: | |
| ```compile_fail,E0528 | |
| let r = &[1, 2]; | |
| match r { | |
| &[a, b, c, rest @ ..] => { // error: pattern requires at least 3 | |
| // elements but array has 2 | |
| println!("a={}, b={}, c={} rest={:?}", a, b, c, rest); | |
| } | |
| } | |
| ``` | |
| Ensure that the matched array has at least as many elements as the pattern | |
| requires. You can match an arbitrary number of remaining elements with `..`: | |
| ``` | |
| let r = &[1, 2, 3, 4, 5]; | |
| match r { | |
| &[a, b, c, rest @ ..] => { // ok! | |
| // prints `a=1, b=2, c=3 rest=[4, 5]` | |
| println!("a={}, b={}, c={} rest={:?}", a, b, c, rest); | |
| } | |
| } | |
| ``` |