// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc.  All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd

syntax = "proto3";

package objc.protobuf.tests.proto3_preserve_unknown_enum;
option objc_class_prefix = "UnknownEnums";

enum MyEnum {
  FOO = 0;
  BAR = 1;
  BAZ = 2;
}

enum MyEnumPlusExtra {
  E_FOO = 0;
  E_BAR = 1;
  E_BAZ = 2;
  E_EXTRA = 3;
}

message MyMessage {
  MyEnum e = 1;
  repeated MyEnum repeated_e = 2;
  repeated MyEnum repeated_packed_e = 3 [packed=true];
  repeated MyEnumPlusExtra repeated_packed_unexpected_e = 4;  // not packed
  oneof o {
    MyEnum oneof_e_1 = 5;
    MyEnum oneof_e_2 = 6;
  }
}

message MyMessagePlusExtra {
  MyEnumPlusExtra e = 1;
  repeated MyEnumPlusExtra repeated_e = 2;
  repeated MyEnumPlusExtra repeated_packed_e = 3 [packed=true];
  repeated MyEnumPlusExtra repeated_packed_unexpected_e = 4 [packed=true];
  oneof o {
    MyEnumPlusExtra oneof_e_1 = 5;
    MyEnumPlusExtra oneof_e_2 = 6;
  }
}
