anchor.diff:      end.
   
   defs_to_msgtype(Defs) ->
  +    AllOneofs = get_all_oneofs(Defs),
       %% There is a slight bit of mismatch here: the DescriptorProto
       %% contains fields for `nested_type' and `enum_type', and defines
       %% a name resolution scheme, but the gpb parser already un-nests,
  
positive.code:                  || {EName, EValue} <- Enumerators]}
       || {{enum,EnumName}, Enumerators} <- Defs].
  
  atom_to_ustring(A) ->
      Utf8Str = atom_to_list(A),
      unicode:characters_to_list(list_to_binary(Utf8Str), utf8).
  
negative.code:        source_code_info = undefined  %% #'SourceCodeInfo'{} | undefined
        }.
  
  get_all_oneofs(Defs) ->
      lists:flatten([[Name || #gpb_oneof{name=Name} <- Fields]
                     || {{msg,_}, Fields} <- Defs]).
  
  defs_to_package(Defs) ->
      %% There can be at most 1 package definition
      %% The parser will reject any multiple package definitions
  