| Crates.io | sqlx-error |
| lib.rs | sqlx-error |
| version | 0.5.0 |
| created_at | 2023-06-11 06:09:33.612521+00 |
| updated_at | 2024-07-24 13:22:32.973136+00 |
| description | A wrapper around `sqlx::Error` to provide error path and additional context |
| homepage | |
| repository | https://github.com/imbolc/sqlx-error |
| max_upload_size | |
| id | 887249 |
| size | 8,821 |
A wrapper around sqlx::Error to provide error path and additional context.
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");
We appreciate all kinds of contributions, thank you!
Most of the readme is automatically copied from the crate documentation by cargo-sync-readme. This way the readme is always in sync with the docs and examples are tested.
So if you find a part of the readme you'd like to change between <!-- cargo-sync-readme start -->
and <!-- cargo-sync-readme end --> markers, don't edit README.md directly, but rather change
the documentation on top of src/lib.rs and then synchronize the readme with:
cargo sync-readme
(make sure the cargo command is installed):
cargo install cargo-sync-readme
If you have rusty-hook installed the changes will apply automatically on commit.
This project is licensed under the MIT license.