macro_rules! encode_fields {
    (
        $enc:expr,                  // encoder
        $idx:expr,                  // starting field index
        $struct:expr,               // struct we're serializing
        $struct_name:ident,         // struct name
        [ $($name:ident),+$(,)? ],  // fields to encode
        [ $($ignore:ident),+$(,)? ] // fields we're skipping
    ) => { ... };
}