if let docs and example doesn't mention a benefit: It allows to match enum non-parameterized variants, even if the enum doesn't #[derive(PartialEq)], neither we implement PartialEq for it. In such case, classic if Foo::Bar==a fails, but if let works.