A wrapper around sqlx::Error
to provide error path and additional context.
```rust use sqlxerror::{sqlxerror, SqlxError};
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).maperr(sqlxerror!())?; Ok(()) }
/// Or you can add more context fn bar() -> Result<(), MyError> { Err(sqlx::Error::RowNotFound).maperr(sqlxerror!("more context"))?; Ok(()) }
asserteq!(foo().unwraperr().tostring(), "sqlx rustout::foo, src/lib.rs:15:43"); asserteq!(bar().unwraperr().tostring(), "sqlx rustout::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:
bash
cargo sync-readme
(make sure the cargo command is installed):
bash
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.