internal

package
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsGenumDirective

func IsGenumDirective(comment string) bool

func ParseFlags added in v0.1.3

func ParseFlags(comment string) (map[string]string, error)

Types

type CaseHandling added in v0.1.3

type CaseHandling string
const (
	CaseSensitive CaseHandling = "sensitive"
	CaseIgnore    CaseHandling = "ignore"
	CaseLower     CaseHandling = "lower"
	CaseUpper     CaseHandling = "upper"
)

func (CaseHandling) IsValid added in v0.1.3

func (c CaseHandling) IsValid() bool

type Directive

type Directive struct {
	TypeName   string
	OutputFile string
	TrimPrefix string
	Case       CaseHandling
}

func ParseFromComment

func ParseFromComment(comment, sourceFile string) (*Directive, error)

type Enum

type Enum struct {
	TypeName   string
	BaseType   string
	TrimPrefix string
	Case       string
	Values     []EnumValue
}

type EnumValue

type EnumValue struct {
	Name  string
	Value string
}

type Environment

type Environment struct {
	Pkg            *packages.Package
	SourceFile     *ast.File
	SourceFileName string
}

func (*Environment) PackageName

func (e *Environment) PackageName() string

type File

type File struct {
	Package string
	Source  string
	Output  string
	Enums   []Enum

	NeedStringsPackage bool
}

type Generator

type Generator struct {
	// contains filtered or unexported fields
}

func NewGenerator

func NewGenerator() *Generator

func (*Generator) Generate

func (g *Generator) Generate(file File) error

func (*Generator) GenerateFile

func (g *Generator) GenerateFile(file File) (string, error)

func (*Generator) WriteFile

func (g *Generator) WriteFile(filename, content string) error

type Loader

type Loader struct {
	// contains filtered or unexported fields
}

func NewLoader

func NewLoader() *Loader

func (*Loader) Load

func (l *Loader) Load() (*Environment, error)

type Parser

type Parser struct{}

func NewParser

func NewParser() *Parser

func (*Parser) Parse

func (p *Parser) Parse(env *Environment) ([]File, error)

func (*Parser) ParseBaseType

func (p *Parser) ParseBaseType(pkg *packages.Package, typeName string) *string

func (*Parser) ParseConstants

func (p *Parser) ParseConstants(pkg *packages.Package, typeName string) []EnumValue

func (*Parser) ParseFileDirectives

func (p *Parser) ParseFileDirectives(env *Environment) ([]Directive, error)

func (*Parser) ParseSingleEnum

func (p *Parser) ParseSingleEnum(pkg *packages.Package, directive *Directive) (*Enum, error)

func (*Parser) ProcessConstGroupWithTypes added in v0.1.5

func (p *Parser) ProcessConstGroupWithTypes(pkg *packages.Package, decl *ast.GenDecl, targetType string, values *[]EnumValue)

func (*Parser) TypeString

func (p *Parser) TypeString(typ types.Type) string

type TemplateData

type TemplateData struct {
	PackageName string
	TypeName    string
	BaseType    string
	Values      []EnumValue
}

Jump to

Keyboard shortcuts

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