anchor.diff:                  erlang:make_tuple(length(MsgDef)+1, undefined, [{1,MsgName}]),
                   MsgDef).
   
  -decode_field(Bin, MsgDef, MsgDefs, Msg) when size(Bin) > 0 ->
  +decode_field(Bin, MsgDef, MsgDefs, Msg) when byte_size(Bin) > 0 ->
       {Key, Rest} = decode_varint(Bin),
       FieldNum = Key bsr 3,
       WireType = Key band 7,
  
positive.code:             <<Value:64/float-little>>;
          string ->
              Utf8 = unicode:characters_to_binary(Value),
              <<(encode_varint(size(Utf8)))/binary, Utf8/binary>>;
          bytes ->
              <<(encode_varint(size(Value)))/binary, Value/binary>>;
          {msg,_MsgName} ->
              SubMsg = encode_msg(Value, MsgDefs),
              <<(encode_varint(size(SubMsg)))/binary, SubMsg/binary>>;
          fixed32 ->
              <<Value:32/little>>;
          sfixed32 ->
  
negative.code:         Elems ->
              PackedFields = encode_packed_2(Elems, Type, MsgDefs, <<>>),
              <<(encode_fnum_type(FNum, bytes))/binary,
                (encode_varint(byte_size(PackedFields)))/binary,
                PackedFields/binary>>
      end.
  
  