gen

package
v0.0.0-...-87e9d67 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Package gen implements code generation from TL schema.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Funcs

func Funcs() template.FuncMap

Funcs returns functions which used in templates.

func Template

func Template() *template.Template

Template parses and returns vendored code generation templates.

Types

type FileSystem

type FileSystem interface {
	WriteFile(baseName string, source []byte) error
}

FileSystem represents a directory of generated package.

type GenerateFlags

type GenerateFlags struct {
	// Client enables client generation.
	Client bool
	// Registry enables type ID registry generation.
	Registry bool
	// Server enables experimental server generation.
	Server bool
	// Handlers enables update handler generation.
	Handlers bool
	// UpdatesClassifier enables updates classifier generation.
	UpdatesClassifier bool
	// GetSet enables getters and setters generation.
	GetSet bool
	// Mapping enables mapping helpers generation.
	Mapping bool
	// Slices enables slice helpers generation.
	Slices bool
	// TDLibJSON enables TDLib API JSON encoders and decoders generation.
	TDLibJSON bool
}

GenerateFlags is flags for optional generation.

func (*GenerateFlags) RegisterFlags

func (s *GenerateFlags) RegisterFlags(set *flag.FlagSet)

RegisterFlags registers GenerateFlags fields in given flag set.

type Generator

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

Generator generates go types from tl.Schema.

func NewGenerator

func NewGenerator(s *tl.Schema, genOpt GeneratorOptions) (*Generator, error)

NewGenerator initializes and returns new Generator from tl.Schema.

func (*Generator) WriteSource

func (g *Generator) WriteSource(fs FileSystem, pkgName string, t *template.Template) error

WriteSource writes generated definitions to fs.

type GeneratorOptions

type GeneratorOptions struct {
	// DocBaseURL is a documentation base URL.
	// If DocBaseURL is set, Generator will embed documentation references to generated code.
	//
	// If base is https://core.telegram.org, documentation content will be also
	// embedded.
	DocBaseURL string
	// DocLineLimit sets GoDoc comment line length limit.
	DocLineLimit int
	GenerateFlags
}

GeneratorOptions is a Generator options structure.

func (*GeneratorOptions) RegisterFlags

func (s *GeneratorOptions) RegisterFlags(set *flag.FlagSet)

RegisterFlags registers GeneratorOptions fields in given flag set.

Directories

Path Synopsis
Package td contains generated code from example schema and is used for codegen testing.
Package td contains generated code from example schema and is used for codegen testing.

Jump to

Keyboard shortcuts

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