parser

package
v0.7.6 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ClearCache

func ClearCache()

ClearCache clears the template cache (useful for tests).

func ExtractPropertyNames

func ExtractPropertyNames(template string) []string

ExtractPropertyNames returns all property names from a template.

func ExtractPropertyNamesFromTemplate

func ExtractPropertyNamesFromTemplate(tmpl *MessageTemplate) []string

ExtractPropertyNamesFromTemplate extracts property names from an already parsed template.

func ValidateTemplate added in v0.5.0

func ValidateTemplate(template string) error

ValidateTemplate validates a message template and returns any errors found. This is used for runtime validation and selflog instrumentation.

Types

type CapturingHint added in v0.6.0

type CapturingHint int

CapturingHint specifies how a property should be captured.

const (
	// Default capturing uses Go's default string conversion (e.g., fmt.Sprintf("%v", value)).
	Default CapturingHint = iota

	// Stringify forces string conversion.
	Stringify

	// Capture captures object structure.
	Capture

	// AsScalar treats as scalar value.
	AsScalar
)

type MessageTemplate

type MessageTemplate struct {
	// Raw is the original template string.
	Raw string

	// Tokens are the parsed tokens from the template.
	Tokens []MessageTemplateToken
}

MessageTemplate represents a parsed message template.

func Parse

func Parse(template string) (*MessageTemplate, error)

Parse parses a message template string into a MessageTemplate.

func ParseCached

func ParseCached(template string) (*MessageTemplate, error)

ParseCached parses a template with caching to avoid repeated allocations.

func (*MessageTemplate) Render

func (mt *MessageTemplate) Render(properties map[string]any) string

Render generates the final message using the provided properties.

type MessageTemplateToken

type MessageTemplateToken interface {
	// Render returns the string representation of the token using the provided properties.
	Render(properties map[string]any) string
}

MessageTemplateToken represents a single token in a message template.

type PropertyToken

type PropertyToken struct {
	// PropertyName is the name of the property.
	PropertyName string

	// Capturing specifies how the property should be captured.
	Capturing CapturingHint

	// Format specifies the format string, if any.
	Format string

	// Alignment specifies text alignment, if any.
	Alignment int
}

PropertyToken represents a property placeholder in a message template.

func (*PropertyToken) Render

func (p *PropertyToken) Render(properties map[string]any) string

Render returns the string representation of the property value.

type TextToken

type TextToken struct {
	// Text is the literal text content.
	Text string
}

TextToken represents literal text in a message template.

func (*TextToken) Render

func (t *TextToken) Render(properties map[string]any) string

Render returns the literal text.

type ValidationError added in v0.5.0

type ValidationError struct {
	Message  string
	Position int
	Property string
}

ValidationError represents a template validation error

func (ValidationError) Error added in v0.5.0

func (e ValidationError) Error() string

Jump to

Keyboard shortcuts

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