ohmers 0.1.0

A library for retrieving and storing objects in a Redis server
extern crate ohmers;
extern crate redis;
extern crate rustc_serialize;

use ohmers::{get, Ohmer};
use rustc_serialize::Encodable;

#[derive(RustcEncodable, RustcDecodable, PartialEq, Debug)]
struct Person {
    id: usize,
    name: String,
    father_name: Option<String>,
}

impl Default for Person {
    fn default() -> Self {
        Person {
            id: 0,
            name: "".to_string(),
            father_name: None,
        }
    }
}
impl Ohmer for Person {
    fn id(&self) -> usize { self.id }
    fn set_id(&mut self, id: usize) { self.id = id; }
}

#[test]
fn test_option_some() {
    let client = redis::Client::open("redis://127.0.0.1/").unwrap();
    let mut person = Person::default();
    person.name = "Alice".to_string();
    person.father_name = Some("Bob".to_string());
    person.save(&client).unwrap();

    let person2 = get(person.id, &client).unwrap();
    assert_eq!(person, person2);
}

#[test]
fn test_option_none() {
    let client = redis::Client::open("redis://127.0.0.1/").unwrap();
    let mut person = Person::default();
    person.name = "Alice".to_string();
    person.save(&client).unwrap();

    let person2 = get(person.id, &client).unwrap();
    assert_eq!(person, person2);
}