6 个版本 (破坏性更新)
0.5.0 | 2024年7月24日 |
---|---|
0.4.0 | 2023年9月5日 |
0.3.0 | 2023年9月5日 |
0.2.0 | 2023年7月24日 |
0.1.1 | 2023年6月11日 |
#420 在 文件系统
每月下载量 128
6KB
sqlx-error
对 sqlx::Error
的包装,以提供错误路径和附加上下文。
用法
use sqlx_error::{sqlx_error, SqlxError};
#[derive(Debug, thiserror::Error)]
pub enum MyError {
#[error(transparent)]
Sqlx(#[from] SqlxError),
}
/// If you have a single sqlx query per function, the function path by itself could provide
/// enough context
fn foo() -> Result<(), MyError> {
Err(sqlx::Error::RowNotFound).map_err(sqlx_error!())?;
Ok(())
}
/// Or you can add more context
fn bar() -> Result<(), MyError> {
Err(sqlx::Error::RowNotFound).map_err(sqlx_error!("more context"))?;
Ok(())
}
assert_eq!(foo().unwrap_err().to_string(), "sqlx rust_out::foo, src/lib.rs:15:43");
assert_eq!(bar().unwrap_err().to_string(), "sqlx rust_out::bar, src/lib.rs:21:43, more context");
贡献
我们感激所有形式的贡献,谢谢!
关于 README 的说明
大部分的 README 是通过 cargo-sync-readme 自动从 crate 文档中复制而来。这样 README 总是与文档保持同步,并且示例已过测试。
所以如果你想在 <!-- cargo-sync-readme start -->
和 <!-- cargo-sync-readme end -->
标记之间更改 README 的一部分,请不要直接编辑 README.md
,而是更改 src/lib.rs
上的文档,然后通过以下命令同步 README:
cargo sync-readme
(确保已安装 cargo 命令)
cargo install cargo-sync-readme
如果你已安装 rusty-hook,则更改将在提交时自动应用。
许可证
本项目采用 MIT 许可证。
依赖项
~8.5MB
~175K SLoC