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 B16PoolEncode<I,O,E>{ fn pool_encode(pool:&CpuPool,input:I)->CpuFuture<O,E>; } macro_rules! pool_encode_impl { ($i:ty,$o:ty) => { impl B16PoolEncode<$i,$o,B16EncodeError> for B16<$o>{ fn pool_encode(pool:&CpuPool,input:$i)->CpuFuture<$o,B16EncodeError>{ pool.spawn_fn(move||{ B16::<$o>::encode(input) }) } } } } pool_encode_impl!(u8,String); pool_encode_impl!(u8,Vec<u8>); pool_encode_impl!(i8,String); pool_encode_impl!(i8,Vec<u8>); pool_encode_impl!(u16,String); pool_encode_impl!(u16,Vec<u8>); pool_encode_impl!(i16,String); pool_encode_impl!(i16,Vec<u8>); pool_encode_impl!(u32,String); pool_encode_impl!(u32,Vec<u8>); pool_encode_impl!(i32,String); pool_encode_impl!(i32,Vec<u8>); pool_encode_impl!(u64,String); pool_encode_impl!(u64,Vec<u8>); pool_encode_impl!(i64,String); pool_encode_impl!(i64,Vec<u8>); pool_encode_impl!(String,String); pool_encode_impl!(Vec<u8>,String); pool_encode_impl!(Vec<u8>,Vec<u8>); pool_encode_impl!(Vec<i8>,String); pool_encode_impl!(Vec<i8>,Vec<u8>); pool_encode_impl!(Vec<u16>,String); pool_encode_impl!(Vec<u16>,Vec<u8>); pool_encode_impl!(Vec<i16>,String); pool_encode_impl!(Vec<i16>,Vec<u8>); pool_encode_impl!(Vec<u32>,String); pool_encode_impl!(Vec<u32>,Vec<u8>); pool_encode_impl!(Vec<i32>,String); pool_encode_impl!(Vec<i32>,Vec<u8>); pool_encode_impl!(Vec<u64>,String); pool_encode_impl!(Vec<u64>,Vec<u8>); pool_encode_impl!(Vec<i64>,String); pool_encode_impl!(Vec<i64>,Vec<u8>);