E0026 - Error codes index (original) (raw)
Error codes index
Error code E0026
A struct pattern attempted to extract a nonexistent field from a struct.
Erroneous code example:
#![allow(unused)]
fn main() {
struct Thing {
x: u32,
y: u32,
}
let thing = Thing { x: 0, y: 0 };
match thing {
Thing { x, z } => {} // error: `Thing::z` field doesn't exist
}
}
If you are using shorthand field patterns but want to refer to the struct field by a different name, you should rename it explicitly. Struct fields are identified by the name used before the colon :
so struct patterns should resemble the declaration of the struct type being matched.
#![allow(unused)]
fn main() {
struct Thing {
x: u32,
y: u32,
}
let thing = Thing { x: 0, y: 0 };
match thing {
Thing { x, y: z } => {} // we renamed `y` to `z`
}
}