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
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);