extern crate ohmers;
extern crate redis;
extern crate rustc_serialize;
use ohmers::{get, Ohmer};
use rustc_serialize::Encodable;
#[derive(RustcEncodable, RustcDecodable, PartialEq, Debug)]
struct Numbers {
id: usize,
u8: u8,
u16: u16,
u32: u32,
u64: u64,
usize: usize,
i8: i8,
i16: i16,
i32: i32,
i64: i64,
isize: isize,
}
impl Default for Numbers {
fn default() -> Self {
Numbers {
id: 0,
u8: 0,
u16: 0,
u32: 0,
u64: 0,
usize: 0,
i8: 0,
i16: 0,
i32: 0,
i64: 0,
isize: 0,
}
}
}
impl Ohmer for Numbers {
fn id(&self) -> usize { self.id }
fn set_id(&mut self, id: usize) { self.id = id; }
}
#[test]
fn test_numbers_max() {
let client = redis::Client::open("redis://127.0.0.1/").unwrap();
let mut numbers = Numbers::default();
numbers.u8 = std::u8::MAX;
numbers.u16 = std::u16::MAX;
numbers.u32 = std::u32::MAX;
numbers.u64 = std::u64::MAX;
numbers.usize = std::usize::MAX;
numbers.i8 = std::i8::MAX;
numbers.i16 = std::i16::MAX;
numbers.i32 = std::i32::MAX;
numbers.i64 = std::i64::MAX;
numbers.isize = std::isize::MAX;
numbers.save(&client).unwrap();
let numbers2 = get(numbers.id, &client).unwrap();
assert_eq!(numbers, numbers2);
}
#[test]
fn test_numbers_min() {
let client = redis::Client::open("redis://127.0.0.1/").unwrap();
let mut numbers = Numbers::default();
numbers.u8 = std::u8::MIN;
numbers.u16 = std::u16::MIN;
numbers.u32 = std::u32::MIN;
numbers.u64 = std::u64::MIN;
numbers.usize = std::usize::MIN;
numbers.i8 = std::i8::MIN;
numbers.i16 = std::i16::MIN;
numbers.i32 = std::i32::MIN;
numbers.i64 = std::i64::MIN;
numbers.isize = std::isize::MIN;
numbers.save(&client).unwrap();
let numbers2 = get(numbers.id, &client).unwrap();
assert_eq!(numbers, numbers2);
}