generator

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const ProtoPkg = "google.golang.org/protobuf/proto"

Variables

This section is empty.

Functions

func KeySize

func KeySize(fieldNumber protoreflect.FieldNumber, wireType protowire.Type) int

func ProtoWireType

func ProtoWireType(k protoreflect.Kind) protowire.Type

func RegisterFeature

func RegisterFeature(name string, feat Feature)

Types

type Config

type Config struct {
	// Poolable rules determines if pool feature generate for particular message
	Poolable ObjectSet
	// PoolableExclude rules determines if pool feature disabled for particular message
	PoolableExclude ObjectSet
	// IgnoreUnknownFields contains messages for which unknown fields shall be ignored
	IgnoreUnknownFields ObjectSet
	Wrap                bool
	WellKnownTypes      bool
	AllowEmpty          bool
	BuildTag            string
	// WKTImportRewrite, when true, makes WellKnownTypeMap and WellKnownFieldMap
	// defer to message.GoIdent.GoImportPath (set by protogen, possibly via M=
	// rewrites) instead of the bundled fork's WKT package paths. Use this when
	// a downstream generator rewrites well-known type imports to alternate
	// locations (e.g. TinyGo-compatible copies) and expects vtproto to follow.
	WKTImportRewrite bool
	// FileEmitter, if non-nil, transforms the generated content of each
	// _vtproto.pb.go file before it is finalized. Useful for replacing the
	// auto-generated header or applying file-level rewrites.
	FileEmitter func(file *protogen.File, content []byte) []byte
}

type Feature

type Feature func(gen *GeneratedFile) FeatureGenerator

type FeatureGenerator

type FeatureGenerator interface {
	GenerateFile(file *protogen.File) bool
}

type GeneratedFile

type GeneratedFile struct {
	*protogen.GeneratedFile
	Config        *Config
	LocalPackages map[protoreflect.FullName]bool
}

func (*GeneratedFile) Alloc

func (b *GeneratedFile) Alloc(vname string, message *protogen.Message, isQualifiedIdent bool)

func (*GeneratedFile) FieldGoType

func (p *GeneratedFile) FieldGoType(field *protogen.Field) (goType string, pointer bool)

func (*GeneratedFile) Helper

func (p *GeneratedFile) Helper(name string) protogen.GoIdent

func (*GeneratedFile) Ident

func (p *GeneratedFile) Ident(path, ident string) string

func (*GeneratedFile) IsLocalField

func (p *GeneratedFile) IsLocalField(field *protogen.Field) bool

func (*GeneratedFile) IsLocalMessage

func (p *GeneratedFile) IsLocalMessage(message *protogen.Message) bool

func (*GeneratedFile) IsWellKnownType

func (p *GeneratedFile) IsWellKnownType(message *protogen.Message) bool

func (*GeneratedFile) ShouldIgnoreUnknownFields

func (b *GeneratedFile) ShouldIgnoreUnknownFields(message *protogen.Message) bool

func (*GeneratedFile) ShouldPool

func (b *GeneratedFile) ShouldPool(message *protogen.Message) bool

func (*GeneratedFile) WellKnownFieldMap

func (p *GeneratedFile) WellKnownFieldMap(field *protogen.Field) protogen.GoIdent

func (*GeneratedFile) WellKnownTypeMap

func (p *GeneratedFile) WellKnownTypeMap(message *protogen.Message) protogen.GoIdent

func (*GeneratedFile) Wrapper

func (p *GeneratedFile) Wrapper() bool

type Generator

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

func NewGenerator

func NewGenerator(plugin *protogen.Plugin, featureNames []string, cfg *Config) (*Generator, error)

func (*Generator) Generate

func (gen *Generator) Generate()

type ObjectSet

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

func NewObjectSet

func NewObjectSet() ObjectSet

func (ObjectSet) Contains

func (o ObjectSet) Contains(g protogen.GoIdent) bool

func (ObjectSet) Set

func (o ObjectSet) Set(s string) error

func (ObjectSet) String

func (o ObjectSet) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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