Serde Postgres

Build status Crate Lines Of Code Documentation

Easily deserialize rows from postgres into arbitrary structs. (Only deserialization is supported).

```rust extern crate serde; extern crate serdederive; extern crate serdepostgres; extern crate postgres;

use std::error::Error;

use serde_derive::Deserialize; use postgres::{Connection, TlsMode};

[derive(Clone, Debug, Deserialize)]

struct Person { name: String, age: i32, }

fn main() -> Result<(), Box> { let connection = Connection::connect("postgres://postgres@localhost:5432", TlsMode::None)?;

connection.execute("CREATE TABLE IF NOT EXISTS Person (
    name VARCHAR NOT NULL,
    age INT NOT NULL
)", &[])?;

connection.execute("INSERT INTO Person (name, age) VALUES ($1, $2)",
&[&"Jane", &23])?;

connection.execute("INSERT INTO Person (name, age) VALUES ($1, $2)",
&[&"Alice", &32])?;

let rows = connection.query("SELECT name, age FROM Person", &[])?;

let people: Vec<Person> = serde_postgres::from_rows(&rows)?;

for person in people {
    println!("{:?}", person);
}

Ok(())

} ```