Help us shape the future of Go! Take the 2026 Go Developer Survey

envs

package
v0.265.1 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2026 License: AGPL-3.0, AGPL-3.0-or-later Imports: 14 Imported by: 40

Documentation

Index

Constants

View Source
const (
	DateFormatYearMonthDay DateFormat = "YYYY-MM-DD"
	DateFormatMonthDayYear DateFormat = "MM-DD-YYYY"
	DateFormatDayMonthYear DateFormat = "DD-MM-YYYY"

	TimeFormatHourMinute           TimeFormat = "tt:mm"
	TimeFormatHourMinuteAmPm       TimeFormat = "h:mm aa"
	TimeFormatHourMinuteSecond     TimeFormat = "tt:mm:ss"
	TimeFormatHourMinuteSecondAmPm TimeFormat = "h:mm:ss aa"
)

standard date and time formats

View Source
const (
	LocationPathSeparator = ">"
)

Variables

View Source
var DefaultNumberFormat = &NumberFormat{DecimalSymbol: `.`, DigitGroupingSymbol: `,`}

DefaultNumberFormat is the default number formatting, e.g. 1,234.567

View Source
var ZeroDateTime = time.Time{}

ZeroDateTime is our uninitialized datetime value

Functions

func CollateEquals added in v0.192.0

func CollateEquals(env Environment, s, t string) bool

CollateEquals returns true if the given strings are equal in the given environment's collation

func CollateTransform added in v0.192.0

func CollateTransform(env Environment, s string) string

CollateTransform transforms the given string into it's form to be used for collation.

func DateFromString

func DateFromString(env Environment, str string) (dates.Date, error)

DateFromString returns a date constructed from the passed in string, or an error if we are unable to extract one

func DateTimeFromString

func DateTimeFromString(env Environment, str string, fillTime bool) (time.Time, error)

DateTimeFromString returns a datetime constructed from the passed in string, or an error if we are unable to extract one

func EmptyPromptResolver added in v0.235.3

func EmptyPromptResolver(string) *template.Template

EmptyPromptResolver is an LLM prompt resolver that always returns nil.

func IsPossibleLocationPath added in v0.94.0

func IsPossibleLocationPath(str string) bool

IsPossibleLocationPath returns whether the given string could be a location path

func TimeFromString

func TimeFromString(str string) (dates.TimeOfDay, error)

TimeFromString returns a time of day constructed from the passed in string, or an error if we are unable to extract one

Types

type Collation added in v0.192.0

type Collation string
const (
	CollationDefault        Collation = "default"
	CollationConfusables    Collation = "confusables"
	CollationArabicVariants Collation = "arabic_variants"
)

type DateFormat

type DateFormat string

DateFormat a date format string

func (DateFormat) String

func (df DateFormat) String() string

type Environment

type Environment interface {
	DateFormat() DateFormat
	TimeFormat() TimeFormat
	Timezone() *time.Location
	AllowedLanguages() []i18n.Language
	DefaultCountry() i18n.Country
	NumberFormat() *NumberFormat
	InputCollation() Collation
	RedactionPolicy() RedactionPolicy
	ObfuscationKey() [4]uint32

	// non-marshalled properties
	LocationResolver() LocationResolver
	LLMPrompt(string) *template.Template

	// utility methods
	DefaultLanguage() i18n.Language
	DefaultLocale() i18n.Locale
	Now() time.Time // current time in the env timezone
}

Environment defines the environment that the Excellent function is running in, this includes the timezone the user is in as well as the preferred date and time formats.

func ReadEnvironment

func ReadEnvironment(data []byte) (Environment, error)

ReadEnvironment reads an environment from the given JSON

type EnvironmentBuilder

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

EnvironmentBuilder is a builder for environments

func NewBuilder added in v0.54.0

func NewBuilder() *EnvironmentBuilder

NewEnvironmentBuilder creates a new environment builder

func (*EnvironmentBuilder) Build

func (b *EnvironmentBuilder) Build() Environment

Build returns the final environment

func (*EnvironmentBuilder) WithAllowedLanguages

func (b *EnvironmentBuilder) WithAllowedLanguages(languages ...i18n.Language) *EnvironmentBuilder

func (*EnvironmentBuilder) WithDateFormat

func (b *EnvironmentBuilder) WithDateFormat(format DateFormat) *EnvironmentBuilder

WithDateFormat sets the date format

func (*EnvironmentBuilder) WithDefaultCountry

func (b *EnvironmentBuilder) WithDefaultCountry(country i18n.Country) *EnvironmentBuilder

func (*EnvironmentBuilder) WithInputCollation added in v0.192.0

func (b *EnvironmentBuilder) WithInputCollation(col Collation) *EnvironmentBuilder

func (*EnvironmentBuilder) WithLocationResolver added in v0.235.0

func (b *EnvironmentBuilder) WithLocationResolver(resolver LocationResolver) *EnvironmentBuilder

func (*EnvironmentBuilder) WithNumberFormat

func (b *EnvironmentBuilder) WithNumberFormat(format *NumberFormat) *EnvironmentBuilder

func (*EnvironmentBuilder) WithObfuscationKey added in v0.255.4

func (b *EnvironmentBuilder) WithObfuscationKey(key [4]uint32) *EnvironmentBuilder

func (*EnvironmentBuilder) WithPromptResolver added in v0.235.3

func (b *EnvironmentBuilder) WithPromptResolver(resolver PromptResolver) *EnvironmentBuilder

func (*EnvironmentBuilder) WithRedactionPolicy

func (b *EnvironmentBuilder) WithRedactionPolicy(policy RedactionPolicy) *EnvironmentBuilder

func (*EnvironmentBuilder) WithTimeFormat

func (b *EnvironmentBuilder) WithTimeFormat(format TimeFormat) *EnvironmentBuilder

WithTimeFormat sets the time format

func (*EnvironmentBuilder) WithTimezone

func (b *EnvironmentBuilder) WithTimezone(timezone *time.Location) *EnvironmentBuilder

type Location added in v0.94.0

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

Location represents a single Location

func NewLocation added in v0.94.0

func NewLocation(level LocationLevel, name string) *Location

NewLocation creates a new location object

func (*Location) Aliases added in v0.94.0

func (l *Location) Aliases() []string

Aliases gets the aliases of this location

func (*Location) Children added in v0.94.0

func (l *Location) Children() []*Location

Children gets the children of this location

func (*Location) Level added in v0.94.0

func (l *Location) Level() LocationLevel

Level gets the level of this location

func (*Location) Name added in v0.94.0

func (l *Location) Name() string

Name gets the name of this location

func (*Location) Parent added in v0.94.0

func (l *Location) Parent() *Location

Parent gets the parent of this location

func (*Location) Path added in v0.94.0

func (l *Location) Path() LocationPath

Path gets the full path of this location

func (*Location) String added in v0.94.0

func (l *Location) String() string

type LocationHierarchy added in v0.94.0

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

LocationHierarchy is a hierarical tree of locations

func NewLocationHierarchy added in v0.94.0

func NewLocationHierarchy(env Environment, root *Location, numLevels int) *LocationHierarchy

NewLocationHierarchy cretes a new location hierarchy

func ReadLocationHierarchy added in v0.94.0

func ReadLocationHierarchy(env Environment, data []byte) (*LocationHierarchy, error)

ReadLocationHierarchy reads a location hierarchy from the given JSON

func (*LocationHierarchy) FindByName added in v0.94.0

func (h *LocationHierarchy) FindByName(env Environment, name string, level LocationLevel, parent *Location) []*Location

FindByName looks for all locations in the hierarchy with the given level and name or alias

func (*LocationHierarchy) FindByPath added in v0.94.0

func (h *LocationHierarchy) FindByPath(path LocationPath) *Location

FindByPath looks for a location in the hierarchy with the given path

func (*LocationHierarchy) Root added in v0.94.0

func (h *LocationHierarchy) Root() *Location

Root gets the root location of this hierarchy (typically a country)

func (*LocationHierarchy) UnmarshalJSON added in v0.94.0

func (h *LocationHierarchy) UnmarshalJSON(data []byte) error

type LocationLevel added in v0.94.0

type LocationLevel int

LocationLevel is a numeric level, e.g. 0 = country, 1 = state

type LocationPath added in v0.94.0

type LocationPath string

LocationPath is a location described by a path Country > State ...

func NewLocationPath added in v0.94.0

func NewLocationPath(parts ...string) LocationPath

func (LocationPath) Name added in v0.94.0

func (p LocationPath) Name() string

Name returns the name of the location referenced

func (LocationPath) Normalize added in v0.94.0

func (p LocationPath) Normalize() LocationPath

Normalize normalizes this location path

type LocationResolver added in v0.94.0

type LocationResolver interface {
	FindLocations(Environment, string, LocationLevel, *Location) []*Location
	FindLocationsFuzzy(Environment, string, LocationLevel, *Location) []*Location
	LookupLocation(LocationPath) *Location
}

LocationResolver is used to resolve locations from names or hierarchical paths

type NumberFormat

type NumberFormat struct {
	DecimalSymbol       string `json:"decimal_symbol"`
	DigitGroupingSymbol string `json:"digit_grouping_symbol"`
}

NumberFormat describes how numbers should be parsed and formatted

type PromptResolver added in v0.235.3

type PromptResolver func(string) *template.Template

PromptResolver is a function that resolves a prompt name to a template.

func NewPromptResolver added in v0.235.3

func NewPromptResolver(static map[string]*template.Template) PromptResolver

NewPromptResolver creates a new LLM prompt resolver that uses the provided map of templates.

type RedactionPolicy

type RedactionPolicy string
const (
	RedactionPolicyNone RedactionPolicy = "none"
	RedactionPolicyURNs RedactionPolicy = "urns"
)

type TimeFormat

type TimeFormat string

TimeFormat a time format string

func (TimeFormat) String

func (tf TimeFormat) String() string

Jump to

Keyboard shortcuts

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