pub trait BitRead { fn read_u8(&mut self, size: u8) -> Result<u8>; fn read<T: UInt>(&mut self, size: u8) -> Result<T> { ... } }