E0024: Enum Payload Mismatch
The payload you provided for an enum variant doesn't match its definition.
Example
enum Message {
Quit,
Move { x: i64, y: i64 },
Write(i64),
}
fn main() {
let m = Message::Quit(42); // Error: variant `Message::Quit` expects no payload but a tuple with 1 value provided
}
enum Message {
Quit,
Move { x: i64, y: i64 },
Write(i64),
}
fn main() {
let m = Message::Write; // Error: variant `Message::Write` expects a tuple with 1 value but no payload provided
}
How to fix
Match the variant's expected payload:
enum Message {
Quit,
Move { x: i64, y: i64 },
Write(i64),
}
fn main() {
let a = Message::Quit; // OK: unit variant
let b = Message::Move { x: 1, y: 2 }; // OK: struct variant
let c = Message::Write(42); // OK: tuple variant
}