1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
pub trait B16PoolDecode<I,O,E>{ fn pool_decode(pool:&CpuPool,input:I)->CpuFuture<O,E>; } macro_rules! pool_decode_impl { ($i:ty,$o:ty) => { impl B16PoolDecode<$i,$o,B16DecodeError> for B16<$o>{ fn pool_decode(pool:&CpuPool,input:$i)->CpuFuture<$o,B16DecodeError>{ pool.spawn_fn(move||{ B16::<$o>::decode(input) }) } } } } pool_decode_impl!(String,u8); pool_decode_impl!(Vec<u8>,u8); pool_decode_impl!(String,i8); pool_decode_impl!(Vec<u8>,i8); pool_decode_impl!(String,u16); pool_decode_impl!(Vec<u8>,u16); pool_decode_impl!(String,i16); pool_decode_impl!(Vec<u8>,i16); pool_decode_impl!(String,u32); pool_decode_impl!(Vec<u8>,u32); pool_decode_impl!(String,i32); pool_decode_impl!(Vec<u8>,i32); pool_decode_impl!(String,u64); pool_decode_impl!(Vec<u8>,u64); pool_decode_impl!(String,i64); pool_decode_impl!(Vec<u8>,i64); pool_decode_impl!(String,String); pool_decode_impl!(String,Vec<u8>); pool_decode_impl!(Vec<u8>,Vec<u8>); pool_decode_impl!(String,Vec<i8>); pool_decode_impl!(Vec<u8>,Vec<i8>); pool_decode_impl!(String,Vec<u16>); pool_decode_impl!(Vec<u8>,Vec<u16>); pool_decode_impl!(String,Vec<i16>); pool_decode_impl!(Vec<u8>,Vec<i16>); pool_decode_impl!(String,Vec<u32>); pool_decode_impl!(Vec<u8>,Vec<u32>); pool_decode_impl!(String,Vec<i32>); pool_decode_impl!(Vec<u8>,Vec<i32>); pool_decode_impl!(String,Vec<u64>); pool_decode_impl!(Vec<u8>,Vec<u64>); pool_decode_impl!(String,Vec<i64>); pool_decode_impl!(Vec<u8>,Vec<i64>);