1 extern crate "db-key" as key; 2 3 use key::Key; 4 use key::from_u8; 5 6 enum MyValues { 7 One 8 } 9 10 struct MyKey { 11 #[allow(dead_code)] 12 val: MyValues 13 } 14 15 impl Key for MyKey { from_u8(_key: &[u8]) -> MyKey16 fn from_u8(_key: &[u8]) -> MyKey { 17 MyKey { val: MyValues::One } 18 } 19 as_slice<T, F:Fn(&[u8]) -> T>(&self, f: F) -> T20 fn as_slice<T, F:Fn(&[u8]) -> T>(&self, f: F) -> T { 21 f("test".as_bytes()) 22 } 23 } 24 25 #[test] test()26fn test() { 27 from_u8::<MyKey>("test".as_bytes()); 28 } 29 30 #[test] test2()31fn test2() { 32 let key = MyKey { val: MyValues::One }; 33 key.as_slice(|k| { 34 assert_eq!(k, "test".as_bytes()) 35 }) 36 } 37