yachg

package
v0.5.2 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Reload

func Reload(cfg any, log ReloadLog, files ...string) error

Types

type Obs

type Obs[T comparable] struct {
	change.Obs[T]
	// contains filtered or unexported fields
}
Example (Json)
var cfg struct {
	Log Obs[bool]
}
cfg.Log.ObsRegister(0, nil, change.UpdateFunc(func(_ any, e change.Event) {
	ce := e.(change.Changed[bool])
	fmt.Printf("%t -> %t", ce.OldValue(), ce.NewValue())
}))
json.NewEncoder(os.Stdout).Encode(&cfg)
json.Unmarshal([]byte(`{"Log": true}`), &cfg)
Output:

{"Log":false}
false -> true

func NewObs

func NewObs[T comparable](init T, defaultTag interface{}, defaultChg change.Flags, os ...change.Observer) Obs[T]

func (*Obs[T]) Flag added in v0.3.1

func (o *Obs[T]) Flag(name, usage string, set *flag.FlagSet)

func (*Obs[T]) Get

func (o *Obs[T]) Get() T

func (*Obs[T]) MarshalJSON

func (o *Obs[T]) MarshalJSON() ([]byte, error)

func (*Obs[T]) MergeDaQ added in v0.4.0

func (o *Obs[T]) MergeDaQ(by *daq.Merge, add any) error

func (*Obs[T]) Set

func (o *Obs[T]) Set(v T, chg change.Flags) change.Flags

func (*Obs[T]) UnmarshalJSON

func (o *Obs[T]) UnmarshalJSON(data []byte) error

type On

type On[T comparable] struct {
	change.On[T]
	// contains filtered or unexported fields
}
Example (Json)
cfg := struct {
	Log On[bool]
}{
	Log: NewOn(false, testHook[bool](os.Stdout)),
}
json.NewEncoder(os.Stdout).Encode(&cfg)
json.Unmarshal([]byte(`{"Log": true}`), &cfg)
Output:

{"Log":false}
false -> true

func NewOn

func NewOn[T comparable](init T, hook change.HookFunc[T]) On[T]

func (*On[T]) Flag added in v0.3.1

func (o *On[T]) Flag(name, usage string, set *flag.FlagSet)

func (*On[T]) Get

func (cv *On[T]) Get() T

func (*On[T]) MarshalJSON

func (o *On[T]) MarshalJSON() ([]byte, error)

func (*On[T]) MergeDaQ added in v0.4.0

func (o *On[T]) MergeDaQ(by *daq.Merge, add any) error

func (*On[T]) Set

func (cv *On[T]) Set(v T, chg change.Flags) change.Flags

func (*On[T]) UnmarshalJSON

func (o *On[T]) UnmarshalJSON(data []byte) error

type ReloadLog

type ReloadLog interface {
	WatchError(path string, err error)
	Reload(path string)
	ReloadError(path string, err error)
}

func StdLog

func StdLog(l *log.Logger) ReloadLog

Jump to

Keyboard shortcuts

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