// Copyright 2019 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.

// Code generated by generate-protos. DO NOT EDIT.

package fieldnum

// Field numbers for google.protobuf.Type.
const (
	Type_Name          = 1 // optional string
	Type_Fields        = 2 // repeated google.protobuf.Field
	Type_Oneofs        = 3 // repeated string
	Type_Options       = 4 // repeated google.protobuf.Option
	Type_SourceContext = 5 // optional google.protobuf.SourceContext
	Type_Syntax        = 6 // optional google.protobuf.Syntax
)

// Field numbers for google.protobuf.Field.
const (
	Field_Kind         = 1  // optional google.protobuf.Field.Kind
	Field_Cardinality  = 2  // optional google.protobuf.Field.Cardinality
	Field_Number       = 3  // optional int32
	Field_Name         = 4  // optional string
	Field_TypeUrl      = 6  // optional string
	Field_OneofIndex   = 7  // optional int32
	Field_Packed       = 8  // optional bool
	Field_Options      = 9  // repeated google.protobuf.Option
	Field_JsonName     = 10 // optional string
	Field_DefaultValue = 11 // optional string
)

// Field numbers for google.protobuf.Enum.
const (
	Enum_Name          = 1 // optional string
	Enum_Enumvalue     = 2 // repeated google.protobuf.EnumValue
	Enum_Options       = 3 // repeated google.protobuf.Option
	Enum_SourceContext = 4 // optional google.protobuf.SourceContext
	Enum_Syntax        = 5 // optional google.protobuf.Syntax
)

// Field numbers for google.protobuf.EnumValue.
const (
	EnumValue_Name    = 1 // optional string
	EnumValue_Number  = 2 // optional int32
	EnumValue_Options = 3 // repeated google.protobuf.Option
)

// Field numbers for google.protobuf.Option.
const (
	Option_Name  = 1 // optional string
	Option_Value = 2 // optional google.protobuf.Any
)
