// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Test Protobuf definitions with proto3 syntax.
syntax = "proto3";

package pb3;
option go_package = "github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb3";

// Scalars contains scalar field types.
message Scalars {
  bool s_bool = 1;

  int32 s_int32 = 2;
  int64 s_int64 = 3;
  uint32 s_uint32 = 4;
  uint64 s_uint64 = 5;
  sint32 s_sint32 = 6;
  sint64 s_sint64 = 7;
  fixed32 s_fixed32 = 8;
  fixed64 s_fixed64 = 9;
  sfixed32 s_sfixed32 = 10;
  sfixed64 s_sfixed64 = 11;

  // Textproto marshal outputs fields in the same order as this proto
  // definition regardless of field number. Following fields are intended to
  // test that assumption.

  float s_float = 20;
  double s_double = 21;

  bytes s_bytes = 14;
  string s_string = 13;
}

enum Enum {
  ZERO = 0;
  ONE = 1;
  TWO = 2;
  TEN = 10;
}

// Message contains enum fields.
message Enums {
  Enum s_enum = 1;

  enum NestedEnum {
  	CERO = 0;
	UNO = 1;
	DOS = 2;
	DIEZ = 10;
  }
  NestedEnum s_nested_enum = 3;
}

// Message contains nested message field.
message Nests {
  Nested s_nested = 1;
}

// Message type used as submessage.
message Nested {
  string s_string = 1;
  Nested s_nested = 2;
}
