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) => { ... };
}