Documentation ¶
Overview ¶
Package strs provides string manipulation functionality specific to protobuf.
Index ¶
- func EnforceUTF8(fd protoreflect.FieldDescriptor) bool
- func EnumValueName(s string) string
- func GoCamelCase(s string) string
- func GoSanitized(s string) string
- func JSONCamelCase(s string) string
- func JSONSnakeCase(s string) string
- func MapEntryName(s string) string
- func TrimEnumPrefix(s, prefix string) string
- func UnsafeBytes(s string) (b []byte)
- func UnsafeString(b []byte) (s string)
- type Builder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EnforceUTF8 ¶
func EnforceUTF8(fd protoreflect.FieldDescriptor) bool
EnforceUTF8 reports whether to enforce strict UTF-8 validation.
func EnumValueName ¶
EnumValueName derives the camel-cased enum value name. See protoc v3.8.0: src/google/protobuf/descriptor.cc:297-313
func GoCamelCase ¶
GoCamelCase camel-cases a protobuf name for use as a Go identifier.
If there is an interior underscore followed by a lower case letter, drop the underscore and convert the letter to upper case.
func GoSanitized ¶
GoSanitized converts a string to a valid Go identifier.
func JSONCamelCase ¶
JSONCamelCase converts a snake_case identifier to a camelCase identifier, according to the protobuf JSON specification.
func JSONSnakeCase ¶
JSONSnakeCase converts a camelCase identifier to a snake_case identifier, according to the protobuf JSON specification.
func MapEntryName ¶
MapEntryName derives the name of the map entry message given the field name. See protoc v3.8.0: src/google/protobuf/descriptor.cc:254-276,6057
func TrimEnumPrefix ¶
TrimEnumPrefix trims the enum name prefix from an enum value name, where the prefix is all lowercase without underscores. See protoc v3.8.0: src/google/protobuf/descriptor.cc:330-375
func UnsafeBytes ¶
UnsafeBytes returns an unsafe bytes slice reference of s. The caller must treat returned slice as immutable.
WARNING: Use carefully. The returned result must not leak to the end user.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder builds a set of strings with shared lifetime. This differs from strings.Builder, which is for building a single string.
func (*Builder) AppendFullName ¶
func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName
AppendFullName is equivalent to protoreflect.FullName.Append, but optimized for large batches where each name has a shared lifetime.