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,
}
impl Default for Person {
    fn default() -> Self {
        Person {
            id: 0,
            name: "".to_string(),
        }
    }
}
impl Ohmer for Person {
    fn id(&self) -> usize { self.id }
    fn set_id(&mut self, id: usize) { self.id = id; }
}

#[test]
fn test_save() {
    let client = redis::Client::open("redis://127.0.0.1/").unwrap();
    let mut person = Person { id: 0, name: "John".to_string() };
    person.save(&client).unwrap();
}

#[test]
fn test_save_load() {
    let client = redis::Client::open("redis://127.0.0.1/").unwrap();
    let mut person = Person { id: 0, name: "Jane".to_string() };
    person.save(&client).unwrap();
    let person2 = get(person.id, &client).unwrap();
    assert_eq!(person, person2);
}