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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
#![deny(warnings)] #![allow(dead_code)] #![feature(try_from)] #![feature(splice)] extern crate base64; extern crate bigdecimal; extern crate byteorder; #[macro_use] extern crate cfg_if; extern crate chrono; extern crate num_bigint; extern crate num_integer; extern crate num_traits; extern crate r2d2; #[macro_use] extern crate rustorm_codegen; extern crate rustorm_dao as dao; extern crate serde; #[macro_use] extern crate serde_derive; extern crate geo; extern crate serde_json; extern crate time; extern crate tree_magic; extern crate url; extern crate uuid; cfg_if! {if #[cfg(feature = "with-postgres")]{ extern crate r2d2_postgres; extern crate openssl; extern crate postgres; #[macro_use] extern crate postgres_shared; mod pg; }} cfg_if! {if #[cfg(feature = "with-sqlite")]{ extern crate r2d2_sqlite3; extern crate sqlite3; mod sq; }} pub mod column; pub mod common; mod database; mod entity; pub mod error; mod platform; pub mod pool; pub mod record; pub mod record_manager; pub mod table; pub mod types; mod util; mod users; pub use column::Column; pub use dao::ColumnName; pub use dao::Rows; pub use dao::TableName; pub use dao::ToColumnNames; pub use dao::ToTableName; pub use dao::Value; pub use dao::{FromDao, ToDao}; pub use database::Database; pub use entity::EntityManager; pub use error::DbError; pub use pool::Pool; pub use record::Record; pub use record_manager::RecordManager; pub use table::Table; pub use database::DatabaseName; #[cfg(test)] mod test { use super::*; use dao::{Dao, FromDao, ToDao}; #[test] fn derive_fromdao_and_todao() { #[derive(Debug, PartialEq, FromDao, ToDao)] struct User { id: i32, username: String, active: Option<bool>, } let user = User { id: 1, username: "ivanceras".into(), active: Some(true), }; println!("user: {:#?}", user); let dao = user.to_dao(); let mut expected_dao = Dao::new(); expected_dao.insert("id", 1); expected_dao.insert("username", "ivanceras".to_string()); expected_dao.insert("active", true); assert_eq!(expected_dao, dao); println!("dao: {:#?}", dao); let from_dao = User::from_dao(&dao); println!("from_dao: {:#?}", from_dao); assert_eq!(from_dao, user); } }