subsystem

package
v2.937.2 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2026 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Features

type Features interface {
	Target() types.Target
	GetImplementedFeaturesList(ctx context.Context) []features.Feature
	IsFeatureSupported(ctx context.Context, feature features.Feature) bool
	IsFeatureEnabled(ctx context.Context, feature features.Feature) bool
	IsFeatureIgnored(ctx context.Context, feature features.Feature) bool
	IsUnionWrapper(ctx context.Context) bool
	GetFeatureVersion(ctx context.Context, feature features.Feature) string
	IsReadmeSectionImplemented(ctx context.Context, readmeSectionID string) bool
	IsReadmeSectionIgnored(ctx context.Context, readmeSectionID string) bool
	RecordFeatureUsage(ctx context.Context, feature features.Feature)
	RegisterReadmeSectionTemplated(readmeSectionID string, feature features.Feature)
	ReinstateFeatureUsage(ctx context.Context, featureUsage map[string]bool)
	GetFeatureUsage(ctx context.Context) map[string]bool
	GetUsedFeatures(ctx context.Context) map[string]string
	GetAvailableFeatures(ctx context.Context) map[string]bool
	IsFeatureUsed(feature features.Feature) bool
	GetAutoGeneratedHeader(ctx context.Context, generatedID string) string
	CollectGlobalsAndServersModels(ctx context.Context) bool
}

type InitOptions

type InitOptions struct {
	Target              types.Target
	Config              *configuration.Config
	BaseTemplateConfigs map[string]any
	OutDir              string
	GenLockId           string
	FS                  filesystem.FileSystem
	Git                 merge.Git
	LockFile            *config.LockFile
}

type Sanitizer

type Sanitizer interface {
	SanitizeFileName(name string) string
	GetEnumNames(t *ast.TypeDef) []string
}

type Subsystem

type Subsystem struct {
	Config      *configuration.Config  // the parsed configuration (usually from gen.yaml)
	Features    Features               // system for managing feature enablement and recording of used features
	Extensions  *extensions.Extensions // system for parsing extensions and handling extension rewrites
	Register    *register.Register     // type system register
	Target      types.Target
	Cycles      *cycles.CycleDetector
	Sanitizer   Sanitizer
	FileTracker *filetracking.Tracker
	Patches     *patches.Subsystem // system for 3-way merge with persistent edits
}

Subsystem represents the subsystems of the generator that are normally used by multiple other packages in addition to the generator itself This container class was create to make it simpler to pass around and standardize access to avoid large param lists or options objects

func New

func New(fileTracker *filetracking.Tracker) *Subsystem

func (*Subsystem) Init

func (s *Subsystem) Init(ctx context.Context, opts InitOptions) error

Jump to

Keyboard shortcuts

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