Enums rust:如何简化枚举嵌套匹配?

Enums rust:如何简化枚举嵌套匹配?,enums,rust,nested,match,Enums,Rust,Nested,Match,我得到了std::result::result的结果,我想检查是否找到了该行。 正确的代码: let sql = "select id,name from tablename LIMIT 0"; let r = sqlx::query_as::<_, Person>(sql).fetch_one(&pool).await; if let Err(err) = r { match err { sqlx::Error::RowNotFo

我得到了
std::result::result
的结果,我想检查是否找到了该行。 正确的代码:

let sql = "select id,name from tablename LIMIT 0";
let r = sqlx::query_as::<_, Person>(sql).fetch_one(&pool).await;
if let Err(err) = r {
    match err {
        sqlx::Error::RowNotFound => println!("Not Found!!!"),
        _ => (),
    }
}
正确的方式2:

r.map_err(|err| if let sqlx::Error::RowNotFound = err {
    println!("Not Found!!!");
});

有更简单的方法吗?

您也可以这样匹配:

匹配r{
Err(sqlx::Error::RowNotFound)=>println!(“未找到!!!”),
_ => (),
}
您还可以查看

这只是一个备选方案:
r.map_err(|err| if let sqlx::Error::RowNotFound = err {
    println!("Not Found!!!");
});