anchor.diff:       || {{enum, EnumName}, EnumDef} <- Defs,
           smember({enum,EnumName}, UsedTypes)].
   
  -encode_enum_varint_value(Value) ->
  +enum_to_binary_fields(Value) ->
       <<N:32/unsigned-native>> = <<Value:32/signed-native>>,
  -    binary_to_list(gpb:encode_varint(N)).
  +    varint_to_binary_fields(N).
  +
  +varint_to_binary_fields(IntValue) ->
  +    [erl_syntax:binary_field(?expr('<n>', [replace_term('<n>', N)]), [])
  +     || N <- binary_to_list(gpb:encode_varint(IntValue))].
   
   varint_to_byte_text(N) ->
       Bin = gpb:encode_varint(N),
  
positive.code:                              erl_syntax:atom(RecordName),
                               erl_syntax:atom(FieldName)).
  
  var_f_n(N) ->
      erl_syntax:variable(?ff("F~w", [N])).
  
  assign_to_var(Var, Expr) ->
      ?expr('<Var>' = '<Expr>',
  
negative.code:        [splice_clauses(
            '<enum-sym>',
            [begin
                 ViBytes = enum_to_binary_fields(EnumValue),
                 gpb_codegen:fn_clause(
                   fun('<s>', Bin) -> <<Bin/binary, '<b>'>> end,
                   [replace_term('<s>', EnumSym),
  