1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
//! # Serde Postgres //! //! Easily deserialize rows from [`postgres`](//docs.rs/postgres) into //! arbitrary structs. (Only deserialization is supported). //! //! ```rust,no_run //! extern crate serde; //! extern crate serde_derive; //! extern crate serde_postgres; //! 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<Error>> { //! 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(()) //! } //! ``` #![deny(missing_docs)] extern crate serde; extern crate postgres; // extern crate postgres_derive; #[cfg(test)] extern crate serde_derive; pub mod de; pub mod error; pub use de::{from_row, from_rows, Deserializer}; pub use error::{Error, Result};