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

package filedesc

import (
	
	
	
)

var (
	emptyNames           = new(Names)
	emptyEnumRanges      = new(EnumRanges)
	emptyFieldRanges     = new(FieldRanges)
	emptyFieldNumbers    = new(FieldNumbers)
	emptySourceLocations = new(SourceLocations)

	emptyFiles      = new(FileImports)
	emptyMessages   = new(Messages)
	emptyFields     = new(Fields)
	emptyOneofs     = new(Oneofs)
	emptyEnums      = new(Enums)
	emptyEnumValues = new(EnumValues)
	emptyExtensions = new(Extensions)
	emptyServices   = new(Services)
)

// PlaceholderFile is a placeholder, representing only the file path.
type PlaceholderFile string

func ( PlaceholderFile) () protoreflect.FileDescriptor       { return  }
func ( PlaceholderFile) () protoreflect.Descriptor               { return nil }
func ( PlaceholderFile) () int                                    { return 0 }
func ( PlaceholderFile) () protoreflect.Syntax                   { return 0 }
func ( PlaceholderFile) () protoreflect.Name                       { return "" }
func ( PlaceholderFile) () protoreflect.FullName               { return "" }
func ( PlaceholderFile) () bool                           { return true }
func ( PlaceholderFile) () protoreflect.ProtoMessage            { return descopts.File }
func ( PlaceholderFile) () string                                  { return string() }
func ( PlaceholderFile) () protoreflect.FullName                { return "" }
func ( PlaceholderFile) () protoreflect.FileImports             { return emptyFiles }
func ( PlaceholderFile) () protoreflect.MessageDescriptors     { return emptyMessages }
func ( PlaceholderFile) () protoreflect.EnumDescriptors           { return emptyEnums }
func ( PlaceholderFile) () protoreflect.ExtensionDescriptors { return emptyExtensions }
func ( PlaceholderFile) () protoreflect.ServiceDescriptors     { return emptyServices }
func ( PlaceholderFile) () protoreflect.SourceLocations { return emptySourceLocations }
func ( PlaceholderFile) (protoreflect.FileDescriptor)         { return }
func ( PlaceholderFile) (pragma.DoNotImplement)           { return }

// PlaceholderEnum is a placeholder, representing only the full name.
type PlaceholderEnum protoreflect.FullName

func ( PlaceholderEnum) () protoreflect.FileDescriptor   { return nil }
func ( PlaceholderEnum) () protoreflect.Descriptor           { return nil }
func ( PlaceholderEnum) () int                                { return 0 }
func ( PlaceholderEnum) () protoreflect.Syntax               { return 0 }
func ( PlaceholderEnum) () protoreflect.Name                   { return protoreflect.FullName().Name() }
func ( PlaceholderEnum) () protoreflect.FullName           { return protoreflect.FullName() }
func ( PlaceholderEnum) () bool                       { return true }
func ( PlaceholderEnum) () protoreflect.ProtoMessage        { return descopts.Enum }
func ( PlaceholderEnum) () protoreflect.EnumValueDescriptors { return emptyEnumValues }
func ( PlaceholderEnum) () protoreflect.Names         { return emptyNames }
func ( PlaceholderEnum) () protoreflect.EnumRanges   { return emptyEnumRanges }
func ( PlaceholderEnum) (protoreflect.EnumDescriptor)     { return }
func ( PlaceholderEnum) (pragma.DoNotImplement)       { return }

// PlaceholderEnumValue is a placeholder, representing only the full name.
type PlaceholderEnumValue protoreflect.FullName

func ( PlaceholderEnumValue) () protoreflect.FileDescriptor    { return nil }
func ( PlaceholderEnumValue) () protoreflect.Descriptor            { return nil }
func ( PlaceholderEnumValue) () int                                 { return 0 }
func ( PlaceholderEnumValue) () protoreflect.Syntax                { return 0 }
func ( PlaceholderEnumValue) () protoreflect.Name                    { return protoreflect.FullName().Name() }
func ( PlaceholderEnumValue) () protoreflect.FullName            { return protoreflect.FullName() }
func ( PlaceholderEnumValue) () bool                        { return true }
func ( PlaceholderEnumValue) () protoreflect.ProtoMessage         { return descopts.EnumValue }
func ( PlaceholderEnumValue) () protoreflect.EnumNumber            { return 0 }
func ( PlaceholderEnumValue) (protoreflect.EnumValueDescriptor) { return }
func ( PlaceholderEnumValue) (pragma.DoNotImplement)        { return }

// PlaceholderMessage is a placeholder, representing only the full name.
type PlaceholderMessage protoreflect.FullName

func ( PlaceholderMessage) () protoreflect.FileDescriptor    { return nil }
func ( PlaceholderMessage) () protoreflect.Descriptor            { return nil }
func ( PlaceholderMessage) () int                                 { return 0 }
func ( PlaceholderMessage) () protoreflect.Syntax                { return 0 }
func ( PlaceholderMessage) () protoreflect.Name                    { return protoreflect.FullName().Name() }
func ( PlaceholderMessage) () protoreflect.FullName            { return protoreflect.FullName() }
func ( PlaceholderMessage) () bool                        { return true }
func ( PlaceholderMessage) () protoreflect.ProtoMessage         { return descopts.Message }
func ( PlaceholderMessage) () bool                           { return false }
func ( PlaceholderMessage) () protoreflect.FieldDescriptors      { return emptyFields }
func ( PlaceholderMessage) () protoreflect.OneofDescriptors      { return emptyOneofs }
func ( PlaceholderMessage) () protoreflect.Names          { return emptyNames }
func ( PlaceholderMessage) () protoreflect.FieldRanges   { return emptyFieldRanges }
func ( PlaceholderMessage) () protoreflect.FieldNumbers { return emptyFieldNumbers }
func ( PlaceholderMessage) () protoreflect.FieldRanges  { return emptyFieldRanges }
func ( PlaceholderMessage) (int) protoreflect.ProtoMessage {
	panic("index out of range")
}
func ( PlaceholderMessage) () protoreflect.MessageDescriptors     { return emptyMessages }
func ( PlaceholderMessage) () protoreflect.EnumDescriptors           { return emptyEnums }
func ( PlaceholderMessage) () protoreflect.ExtensionDescriptors { return emptyExtensions }
func ( PlaceholderMessage) (protoreflect.MessageDescriptor)      { return }
func ( PlaceholderMessage) (pragma.DoNotImplement)           { return }