Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kurtbuilds/sqlx_serde

serde-compatible newtype wrapper for sqlx::postgres::{PgRow, PgValueRef}
https://github.com/kurtbuilds/sqlx_serde

Last synced: 25 days ago
JSON representation

serde-compatible newtype wrapper for sqlx::postgres::{PgRow, PgValueRef}

Awesome Lists containing this project

README

        

# sqlx_serde

Check lib.rs for tests, which should give you a clear idea how to use the crate.

```rust
async fn main() {
let row: PgRow = conn.fetch_one("select 3.3").await.unwrap();
// option 1 - use function calls
let headers: Vec = read_headers(&row);
let row: Vec = read_row(&row);
// option 2 - serializes as a header -> value map
let row = SerMapPgRow::from(row);
let row: serde_json::Value = serde_json::to_value(&row).unwrap();
// option 3 - serializes as a serde_json::Array
let row = SerVecPgRow::from(row);
let row: serde_json::Value = serde_json::to_value(&row).unwrap();
}
```

Look at the `SerMapPgRow` and `SerVecPgRow` structs if you want to use
`#[serialize_with(...)]` on your structs.