// 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

// Author: pbogle@google.com (Phil Bogle)

edition = "2023";

package protobuf_unittest.lite_equals_and_hash;

option features.utf8_validation = NONE;

message TestOneofEquals {
  oneof oneof_field {
    string name = 1;
    int32 value = 2;
  }
}

message Foo {
  int32 value = 1;
  repeated Bar bar = 2;
  map<string, string> my_map = 3;

  oneof Single {
    sint64 sint64 = 4;
    MyGroup mygroup = 5 [features.message_encoding = DELIMITED];
  }

  // LINT: ALLOW_GROUPS
  message MyGroup {
    int32 value = 1;
  }

  extensions 100 to max;
}

message Bar {
  extend Foo {
    Bar foo_ext = 100;
  }

  string name = 1;
}

message BarPrime {
  string name = 1;
}

message Empty {}

extend Foo {
  int32 varint = 101;
  fixed32 fixed32 = 102;
  fixed64 fixed64 = 103;
  MyGroup mygroup = 104 [features.message_encoding = DELIMITED];
}

message MyGroup {
  string group_value = 1;
}

message TestRecursiveOneof {
  oneof Foo {
    TestRecursiveOneof r = 1;
  }
}
