RFC idea: let ... else, easy early returns when pattern matching

Isn't this a job for a macro, à la snafu::ensure?

let_ensure!(SomeVariant(thing) = an_enum, "an_enum should be of type SomeVariant");

// Expands to
let thing = if let SomeVariant(thing) = an_enum {
    thing
} else {
    return Error("an_enum should be of type SomeVariant")
} 
// do something with thing
2 Likes