enumgen

package
v0.17.82 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyEnums

func ApplyEnums(w io.Writer, opts Opts, enums []*protogen.Enum) error

func ApplyEnumsTemplate added in v0.17.78

func ApplyEnumsTemplate(f *protogen.GeneratedFile, opts Opts, enums []*protogen.Enum) error

This function is called with a param which contains the entire definition of a method.

func ApplyMessages

func ApplyMessages(w io.Writer, opts Opts, msgs []*protogen.Message) error

func ApplyMessagesTemplate added in v0.17.78

func ApplyMessagesTemplate(f *protogen.GeneratedFile, opts Opts, msgs []*protogen.Message) error

This function is called with a param which contains the entire definition of a method.

func ApplyTSEnums added in v0.16.75

func ApplyTSEnums(w io.Writer, opts TSOpts, enums []*protogen.Enum) error

func ApplyTemplateTS added in v0.16.75

func ApplyTemplateTS(f *protogen.GeneratedFile, opts TSOpts, fileEnumInfos []FileEnumInfo) error

This function is called with a param which contains the entire definition of a method.

func CreateEnumDescription

func CreateEnumDescription(en *protogen.Enum, args Opts) *api.EnumDescription

CreateEnumDescription convert enum descriptor to EnumMeta message

func CreateMessageDescription

func CreateMessageDescription(msg *protogen.Message, args Opts) *api.MessageDescription

CreateMessageDescription convert enum descriptor to EnumMeta message

func FormatDisplayName

func FormatDisplayName(name string) string

FormatDisplayName fixes display name conversion to preserve common acronyms

func GetEnums

func GetEnums(msgs []*protogen.Message) []*protogen.Enum

func GetMessagesToDescribe

func GetMessagesToDescribe(opts Opts, msgs []*protogen.Message, services []*protogen.Service) []*protogen.Message

func Split

func Split(src string) (entries []string)

Split splits the camelcase word and returns a list of words. It also supports digits. Both lower camel case and upper camel case are supported. For more info please check: http://en.wikipedia.org/wiki/CamelCase

Examples

"" =>                     [""]
"lowercase" =>            ["lowercase"]
"Class" =>                ["Class"]
"MyClass" =>              ["My", "Class"]
"MyC" =>                  ["My", "C"]
"HTML" =>                 ["HTML"]
"PDFLoader" =>            ["PDF", "Loader"]
"AString" =>              ["A", "String"]
"SimpleXMLParser" =>      ["Simple", "XML", "Parser"]
"vimRPCPlugin" =>         ["vim", "RPC", "Plugin"]
"GL11Version" =>          ["GL", "11", "Version"]
"99Bottles" =>            ["99", "Bottles"]
"May5" =>                 ["May", "5"]
"BFG9000" =>              ["BFG", "9000"]
"BöseÜberraschung" =>     ["Böse", "Überraschung"]
"Two  spaces" =>          ["Two", "  ", "spaces"]
"BadUTF8\xe2\xe2\xa1" =>  ["BadUTF8\xe2\xe2\xa1"]

Splitting rules

  1. If string is not valid UTF-8, return it without splitting as single item array.
  2. Assign all unicode characters into one of 4 sets: lower case letters, upper case letters, numbers, and all other characters.
  3. Iterate through characters of string, introducing splits between adjacent characters that belong to different sets.
  4. Iterate through array of split strings, and if a given string is upper case: if subsequent string is lower case: move last character of upper case string to beginning of lower case string

Types

type FileEnumInfo added in v0.16.75

type FileEnumInfo struct {
	FileName string
	Enums    []*protogen.Enum
}

type Opts

type Opts struct {
	// Package provides package name
	Package string
	// SkipMessageDescriptionPackage is the package name to skip message description generation
	SkipMessageDescriptionPackage string
}

Opts are the options to set for rendering the template.

type TSOpts added in v0.16.75

type TSOpts struct {
	// BaseImportPath provides the base import path for TypeScript code
	// example: src/services/foo/protogen
	BaseImportPath string
}

TSOpts are the options to set for rendering the template.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL