anchor.diff:              {value, {{enum,EnumName}, Enumerations}} =
                   lists:keysearch({enum,EnumName}, 1, Defs),
               [] ++
  -                [?f("switch (~s->~s()) {\n", [MsgVar, LCFName])] ++
  +                [?f("switch (~s) {\n", [SrcExpr])] ++
                   [?f("    case ~s::~s~s: ~s = ~s; break;\n",
                       [CPkg, EPrefix, Sym, DestVar, mk_c_var(gpb_aa_, Sym)])
                    || {Sym, _Value} <- Enumerations] ++
  
positive.code:             format_nif_cc_field_packer_optional(SrcVar, MsgVar, Field, Defs,
                                                  Opts);
          repeated ->
              format_nif_cc_field_packer_repeated(SrcVar, MsgVar, Field, Defs,
                                                  Opts)
      end;
  format_nif_cc_field_packer(SrcVar, MsgVar, #gpb_oneof{}=Field, Defs, Opts) ->
      #gpb_oneof{fields=OFields} = Field,
  
negative.code:                 ?f("        ERL_NIF_TERM ores;\n"),
                  split_indent_iolist(
                    8,
                    format_nif_cc_field_unpacker_by_field("ores", MsgVar,
                                                          OField, Defs)),
                  ?f("        ~s = enif_make_tuple2(env, ~s, ores);\n",
                     [DestVar, AtomVar]),
                  ?f("    }\n"),
  