schnutibox/vendor/github.com/bufbuild/buf/internal/pkg/protosource/message.go

150 lines
4.1 KiB
Go
Raw Normal View History

// Copyright 2020-2021 Buf Technologies, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package protosource
type message struct {
namedDescriptor
fields []Field
extensions []Field
nestedMessages []Message
nestedEnums []Enum
oneofs []Oneof
reservedMessageRanges []MessageRange
reservedNames []ReservedName
extensionMessageRanges []MessageRange
parent Message
isMapEntry bool
messageSetWireFormat bool
noStandardDescriptorAccessor bool
messageSetWireFormatPath []int32
noStandardDescriptorAccessorPath []int32
}
func newMessage(
namedDescriptor namedDescriptor,
parent Message,
isMapEntry bool,
messageSetWireFormat bool,
noStandardDescriptorAccessor bool,
messageSetWireFormatPath []int32,
noStandardDescriptorAccessorPath []int32,
) *message {
return &message{
namedDescriptor: namedDescriptor,
isMapEntry: isMapEntry,
messageSetWireFormat: messageSetWireFormat,
noStandardDescriptorAccessor: noStandardDescriptorAccessor,
messageSetWireFormatPath: messageSetWireFormatPath,
noStandardDescriptorAccessorPath: noStandardDescriptorAccessorPath,
}
}
func (m *message) Fields() []Field {
return m.fields
}
func (m *message) Extensions() []Field {
return m.extensions
}
func (m *message) Messages() []Message {
return m.nestedMessages
}
func (m *message) Enums() []Enum {
return m.nestedEnums
}
func (m *message) Oneofs() []Oneof {
return m.oneofs
}
func (m *message) ReservedMessageRanges() []MessageRange {
return m.reservedMessageRanges
}
func (m *message) ReservedTagRanges() []TagRange {
tagRanges := make([]TagRange, len(m.reservedMessageRanges))
for i, reservedMessageRange := range m.reservedMessageRanges {
tagRanges[i] = reservedMessageRange
}
return tagRanges
}
func (m *message) ReservedNames() []ReservedName {
return m.reservedNames
}
func (m *message) ExtensionMessageRanges() []MessageRange {
return m.extensionMessageRanges
}
func (m *message) Parent() Message {
return m.parent
}
func (m *message) IsMapEntry() bool {
return m.isMapEntry
}
func (m *message) MessageSetWireFormat() bool {
return m.messageSetWireFormat
}
func (m *message) NoStandardDescriptorAccessor() bool {
return m.noStandardDescriptorAccessor
}
func (m *message) MessageSetWireFormatLocation() Location {
return m.getLocation(m.messageSetWireFormatPath)
}
func (m *message) NoStandardDescriptorAccessorLocation() Location {
return m.getLocation(m.noStandardDescriptorAccessorPath)
}
func (m *message) addField(field Field) {
m.fields = append(m.fields, field)
}
func (m *message) addExtension(extension Field) {
m.extensions = append(m.extensions, extension)
}
func (m *message) addNestedMessage(nestedMessage Message) {
m.nestedMessages = append(m.nestedMessages, nestedMessage)
}
func (m *message) addNestedEnum(nestedEnum Enum) {
m.nestedEnums = append(m.nestedEnums, nestedEnum)
}
func (m *message) addOneof(oneof Oneof) {
m.oneofs = append(m.oneofs, oneof)
}
func (m *message) addReservedMessageRange(reservedMessageRange MessageRange) {
m.reservedMessageRanges = append(m.reservedMessageRanges, reservedMessageRange)
}
func (m *message) addReservedName(reservedName ReservedName) {
m.reservedNames = append(m.reservedNames, reservedName)
}
func (m *message) addExtensionMessageRange(extensionMessageRange MessageRange) {
m.extensionMessageRanges = append(m.extensionMessageRanges, extensionMessageRange)
}