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
//! Rustorm is a simple ORM implemented in rust.
//!
//! ## Example
//! [..](https://github.com/ivanceras/rustorm/blob/master/examples/show_one_product.rs)
//! ```rust
//! extern crate rustorm;
//! extern crate uuid;
//! extern crate chrono;
//! extern crate rustc_serialize;
//! use uuid::Uuid;
//! use chrono::datetime::DateTime;
//! use chrono::offset::utc::UTC;
//! use rustc_serialize::json;
//! use rustorm::query::Query;
//! use rustorm::query::{Filter,Equality};
//! use rustorm::dao::{Dao,IsDao};
//! use rustorm::pool::ManagedPool;
//! use rustorm::table::{IsTable,Table};
//! #[derive(Debug, Clone)]
//! pub struct Product {
//! pub product_id:Uuid,
//! pub name:Option<String>,
//! pub description:Option<String>,
//! }
//! impl IsDao for Product{
//! fn from_dao(dao:&Dao)->Self{
//! Product{
//! product_id: dao.get("product_id"),
//! name: dao.get_opt("name"),
//! description: dao.get_opt("description"),
//! }
//! }
//! fn to_dao(&self)->Dao{
//! let mut dao = Dao::new();
//! dao.set("product_id", &self.product_id);
//! match self.name{
//! Some(ref _value) => dao.set("name", _value),
//! None => dao.set_null("name"),
//! };
//! match self.description{
//! Some(ref _value) => dao.set("description", _value),
//! None => dao.set_null("description"),
//! };
//! dao
//! }
//! }
//! impl IsTable for Product{
//! fn table()->Table{
//! Table{
//! schema:"bazaar".to_string(),
//! name:"product".to_string(),
//! parent_table:None,
//! sub_table:vec![],
//! comment:None,
//! columns:vec![]
//! }
//! }
//! }
//! fn main(){
//! let url = "postgres://postgres:p0stgr3s@localhost/bazaar_v6";
//! let mut pool = ManagedPool::init(&url, 1);
//! let db = pool.connect().unwrap();
//! let prod: Product = Query::select_all()
//! .from_table("bazaar.product")
//! .filter("name", Equality::EQ, &"GTX660 Ti videocard")
//! .collect_one(db.as_ref()).unwrap();
//! println!("{} {} {:?}", prod.product_id, prod.name.unwrap(), prod.description);
//! }
//!
//! ```
//!
//!
//!
extern crate postgres;
extern crate rusqlite;
extern crate mysql;
extern crate rustc_serialize;
extern crate uuid;
extern crate chrono;
extern crate regex;
extern crate url;
extern crate r2d2;
extern crate r2d2_postgres;