Crate rustorm [−] [src]
Rustorm is a simple ORM implemented in rust.
Example
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_owned(), name:"product".to_owned(), parent_table:None, sub_table:vec![], comment:None, columns:vec![], is_view: false } } } fn main(){ let url = "postgres://postgres:p0stgr3s@localhost/bazaar_v6"; let mut pool = ManagedPool::init(&url, 1).unwrap(); 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); }
Modules
config | |
dao | |
database | |
em | |
platform | |
pool | |
query | |
table | |
writer |