extern crate ohmers; extern crate redis; extern crate rustc_serialize; use std::collections::HashSet; use std::iter::FromIterator; use ohmers::{all, Ohmer}; use redis::Commands; use rustc_serialize::Encodable; #[derive(RustcEncodable, RustcDecodable, PartialEq, Eq, Debug, Hash)] struct Car { id: usize, name: String, } impl Default for Car { fn default() -> Self { Car { id: 0, name: "".to_string(), } } } impl Ohmer for Car { fn id(&self) -> usize { self.id } fn set_id(&mut self, id: usize) { self.id = id; } } #[test] fn test_iter_all() { let client = redis::Client::open("redis://127.0.0.1/").unwrap(); let _:bool = client.del("Car:all").unwrap(); assert_eq!( all::(&client).unwrap().collect::>().len(), 0 ); let mut toyota = Car::default(); toyota.name = "Toyota".to_string(); toyota.save(&client).unwrap(); let mut mercedes = Car::default(); mercedes.name = "Mercedes".to_string(); mercedes.save(&client).unwrap(); assert_eq!( all::(&client).unwrap().collect::>(), HashSet::from_iter(vec![toyota, mercedes]) ); }