macro_rules! setter {
($buffer: ident, $name:ident, slice, $offset:expr) => { ... };
($buffer: ident, $name:ident, $ty:tt, $offset:expr) => { ... };
($name:ident, u8, $offset:expr) => { ... };
($name:ident, u16, $offset:expr) => { ... };
($name:ident, u32, $offset:expr) => { ... };
($name:ident, u64, $offset:expr) => { ... };
($name:ident, i8, $offset:expr) => { ... };
($name:ident, i16, $offset:expr) => { ... };
($name:ident, i32, $offset:expr) => { ... };
($name:ident, i64, $offset:expr) => { ... };
}