use crate::cell::CellBuilder;
use crate::cell::CellParser;
use crate::error::TLCoreError;
use crate::traits::tlb::TLB;
macro_rules! tlb_num_impl {
($t:ty, $bits:tt) => {
impl TLB for $t {
fn read_definition(parser: &mut CellParser) -> Result<Self, TLCoreError> { parser.read_num($bits) }
fn write_definition(&self, builder: &mut CellBuilder) -> Result<(), TLCoreError> {
builder.write_num(self, $bits)
}
}
};
}
tlb_num_impl!(i8, 8);
tlb_num_impl!(i16, 16);
tlb_num_impl!(i32, 32);
tlb_num_impl!(i64, 64);
tlb_num_impl!(i128, 128);
tlb_num_impl!(u8, 8);
tlb_num_impl!(u16, 16);
tlb_num_impl!(u32, 32);
tlb_num_impl!(u64, 64);
tlb_num_impl!(u128, 128);
tlb_num_impl!(usize, 64);