Documentation
¶
Overview ¶
Package descriptor provides descriptor types.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompareFileLocations ¶
func CompareFileLocations(one FileLocation, two FileLocation) int
CompareFileLocations returns -1 if one < two, 1 if one > two, 0 otherwise.
Types ¶
type FileDescriptor ¶
type FileDescriptor interface {
// ProtoreflectFileDescriptor returns the protoreflect.FileDescriptor representing this FileDescriptor.
ProtoreflectFileDescriptor() protoreflect.FileDescriptor
// FileDescriptorProto returns the FileDescriptorProto representing this File.
//
// This is not a copy - do not modify!
FileDescriptorProto() *descriptorpb.FileDescriptorProto
// IsImport returns true if the File is an import.
//
// An import is a file that is either:
//
// - A Well-Known Type included from the compiler and imported by a targeted file.
// - A file that was included from a Buf module dependency and imported by a targeted file.
// - A file that was not targeted, but was imported by a targeted file.
//
// We use "import" as this matches with the protoc concept of --include_imports, however
// import is a bit of an overloaded term.
IsImport() bool
// IsSyntaxUnspecified denotes whether the file did not have a syntax explicitly specified.
//
// Per the FileDescriptorProto spec, it would be fine in this case to just leave the syntax field
// unset to denote this and to set the syntax field to "proto2" if it is specified. However,
// protoc does not set the syntax field if it was "proto2". Plugins may want to differentiate
// between "proto2" and unset, and this field allows them to.
IsSyntaxUnspecified() bool
// UnusedDependencyIndexes are the indexes within the Dependency field on FileDescriptorProto for
// those dependencies that are not used.
//
// This matches the shape of the PublicDependency and WeakDependency fields.
UnusedDependencyIndexes() []int32
// ToProto converts the FileDescriptor to its Protobuf representation.
ToProto() *descriptorv1.FileDescriptor
// contains filtered or unexported methods
}
FileDescriptor is a protoreflect.FileDescriptor with additional properties.
The raw FileDescriptorProto is also provided from this interface. are provided.
func FileDescriptorsForProtoFileDescriptors ¶
func FileDescriptorsForProtoFileDescriptors(protoFileDescriptors []*descriptorv1.FileDescriptor) ([]FileDescriptor, error)
FileDescriptorsForProtoFileDescriptors returns a new slice of FileDescriptors for the given descriptorv1.FileDescriptorDescriptors.
type FileLocation ¶
type FileLocation interface {
// FileDescriptor is the FileDescriptor associated with the FileLocation.
//
// Always present.
FileDescriptor() FileDescriptor
// SourcePath returns the path within the FileDescriptorProto of the FileLocation.
SourcePath() protoreflect.SourcePath
// StartLine returns the zero-indexed start line, if known.
StartLine() int
// StartColumn returns the zero-indexed start column, if known.
StartColumn() int
// EndLine returns the zero-indexed end line, if known.
EndLine() int
// EndColumn returns the zero-indexed end column, if known.
EndColumn() int
// LeadingComments returns any leading comments, if known.
LeadingComments() string
// TrailingComments returns any trailing comments, if known.
TrailingComments() string
// LeadingDetachedComments returns any leading detached comments, if known.
LeadingDetachedComments() []string
// ToProto converts the FileLocation to its Protobuf representation.
ToProto() *descriptorv1.FileLocation
// contains filtered or unexported methods
}
FileLocation is a reference to a FileDescriptor or to a location within a FileDescriptor.
A FileLocation always has a file name.
func NewFileLocation ¶
func NewFileLocation( fileDescriptor FileDescriptor, sourceLocation protoreflect.SourceLocation, ) FileLocation
NewFileLocation returns a new FileLocation.
Click to show internal directories.
Click to hide internal directories.