Rust errors / Patterns and matching
Rust compiler error · checked with rustc 1.99.0
Rust error E0769: tuple variant `E::A` written as struct variant
What it meansA tuple struct or tuple variant was used in a pattern as if it were a struct or struct variant.
What rustc prints
error[E0769]: tuple variant `E::A` written as struct variant --> main.rs:10:5 | 10 | E::A { number } => { // error! | ^^^^^^^^^^^^^^^ | help: use the tuple variant pattern syntax instead | 10 - E::A { number } => { // error! 10 + E::A(number) => { // error! |
Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
A tuple struct or tuple variant was used in a pattern as if it were a struct or struct variant.
Erroneous code example:
enum E {
A(i32),
}
let e = E::A(42);
match e {
E::A { number } => { // error!
println!("{}", number);
}
}
To fix this error, you can use the tuple pattern:
match e {
E::A(number) => { // ok!
println!("{}", number);
}
}
Alternatively, you can also use the struct pattern by using the correct field names and binding them to new identifiers:
match e {
E::A { 0: number } => { // ok!
println!("{}", number);
}
}From rustc --explain E0769 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
Up next
Often hit nextE0004: non-exhaustive patternsA related error from the same family.Read it next →Did this answer your question?