Documentation ¶
Index ¶
- Constants
- Variables
- type BranchLocator
- type Converter
- func (c *Converter) DefineMacro(m *Macro, fn MakeModifier)
- func (c *Converter) DefineMacroWithCallbackt(m *Macro, cb func() MakeModifier)
- func (c *Converter) Delete(branch *BranchLocator) error
- func (c *Converter) LoadObject(data []byte, sourcePath string, instanceName string) error
- func (c *Converter) MarshalJSON() ([]byte, error)
- func (c *Converter) Overlay(branch *BranchLocator, value interface{}) error
- func (c *Converter) Run() error
- func (c *Converter) Set(branch *BranchLocator, value interface{}) error
- func (c *Converter) TypeCheckModifier(branch *BranchLocator, kind ValueType, cb ModifierCallback) (ModifierCallback, error)
- func (c *Converter) UnloadObject(obj interface{}, sourcePath string, instanceName string) error
- type Macro
- type MacrosEvalPhase
- type MakeModifier
- type Modifier
- type ModifierCallback
- func MakeArrayLoadJSON(c *Converter, branch *BranchLocator, jsonData []byte) (ModifierCallback, error)
- func MakeModifierStringAsBASE64(_ *Converter, _ *BranchLocator, _ *Macro) (ModifierCallback, error)
- func MakeModifierStringAsJSON(_ *Converter, _ *BranchLocator, _ *Macro) (ModifierCallback, error)
- func MakeModifierStringAsYAML(_ *Converter, _ *BranchLocator, _ *Macro) (ModifierCallback, error)
- func MakeModifierStringJoin(c *Converter, branch *BranchLocator, _ *Macro) (ModifierCallback, error)
- func MakeObjectLoadJSON(c *Converter, branch *BranchLocator, jsonData []byte) (ModifierCallback, error)
- type Tree
- func (t *Tree) ArrayEach(fn treeArrayIterator) error
- func (t *Tree) Bytes() []byte
- func (t *Tree) BytesAsJSON() ([]byte, error)
- func (t *Tree) Check(path ...interface{}) (*ValueType, error)
- func (t *Tree) Delete(keys ...interface{}) error
- func (t *Tree) Each(ifObject treeObjectIterator, ifArray treeArrayIterator) error
- func (t *Tree) Get(keys ...interface{}) (*Tree, error)
- func (t *Tree) GetArray(keys ...interface{}) ([]interface{}, error)
- func (t *Tree) GetBoolean(keys ...interface{}) (bool, error)
- func (t *Tree) GetFloat(keys ...interface{}) (float64, error)
- func (t *Tree) GetInt(keys ...interface{}) (int, error)
- func (t *Tree) GetObject(keys ...interface{}) (map[string]interface{}, error)
- func (t *Tree) GetString(keys ...interface{}) (string, error)
- func (t *Tree) GetValue(keys ...interface{}) (interface{}, error)
- func (t *Tree) Len() int
- func (t *Tree) ObjectEach(fn treeObjectIterator) error
- func (t *Tree) Overlay(source *Tree, keys ...interface{}) error
- func (t *Tree) Set(value interface{}, keys ...interface{}) error
- func (t *Tree) SetArray(v []interface{}, keys ...interface{}) error
- func (t *Tree) SetBoolean(v bool, keys ...interface{}) error
- func (t *Tree) SetFloat(v float64, keys ...interface{}) error
- func (t *Tree) SetInt(v int64, keys ...interface{}) error
- func (t *Tree) SetObject(v map[string]interface{}, keys ...interface{}) error
- func (t *Tree) SetString(v string, keys ...interface{}) error
- func (t *Tree) String() string
- func (t *Tree) StringAsJSON() (string, error)
- type UnregisteredModifier
- type ValueType
Constants ¶
View Source
const ( Null = ValueType(iota) Boolean Number String Object Array )
View Source
const ( MacrosEvalPhaseA = iota MacrosEvalPhaseB MacrosEvalPhaseC MacrosEvalPhaseD MacrosEvalPhaseE MacrosEvalPhases )
Variables ¶
View Source
var ( MacroBooleanIf = &Macro{ ReturnType: Null, EvalPhase: MacrosEvalPhaseA, VerbName: "If", } MacroBooleanLookup = &Macro{ ReturnType: Boolean, EvalPhase: MacrosEvalPhaseB, VerbName: "Lookup", } MacroStringLookup = &Macro{ ReturnType: String, EvalPhase: MacrosEvalPhaseB, VerbName: "Lookup", } MacroNumberLookup = &Macro{ ReturnType: Number, EvalPhase: MacrosEvalPhaseB, VerbName: "Lookup", } MacroArrayLookup = &Macro{ ReturnType: Array, EvalPhase: MacrosEvalPhaseB, VerbName: "Lookup", } MacroObjectLookup = &Macro{ ReturnType: Object, EvalPhase: MacrosEvalPhaseB, VerbName: "Lookup", } LoadObjectJSON = &Macro{ ReturnType: Object, EvalPhase: MacrosEvalPhaseC, VerbName: "LoadJSON", } LoadArrayJSON = &Macro{ ReturnType: Array, EvalPhase: MacrosEvalPhaseC, VerbName: "LoadJSON", } MacroStringJoin = &Macro{ ReturnType: String, EvalPhase: MacrosEvalPhaseD, VerbName: "Join", } MacroStringAsJSON = &Macro{ ReturnType: String, EvalPhase: MacrosEvalPhaseD, VerbName: "AsJSON", } MacroStringAsYAML = &Macro{ ReturnType: String, EvalPhase: MacrosEvalPhaseD, VerbName: "AsYAML", } MacroStringAsBASE64 = &Macro{ ReturnType: String, EvalPhase: MacrosEvalPhaseD, VerbName: "AsBASE64", } )
Functions ¶
This section is empty.
Types ¶
type BranchLocator ¶
type BranchLocator struct {
// contains filtered or unexported fields
}
func (*BranchLocator) Kind ¶
func (b *BranchLocator) Kind() ValueType
func (*BranchLocator) PathToString ¶
func (b *BranchLocator) PathToString() string
func (*BranchLocator) Refresh ¶
func (b *BranchLocator) Refresh(c *Converter) error
Refresh get latest value from t and recurses into parents
func (*BranchLocator) StringValue ¶
func (b *BranchLocator) StringValue() *string
func (*BranchLocator) Value ¶
func (b *BranchLocator) Value() *Tree
type Converter ¶
type Converter struct {
// contains filtered or unexported fields
}
func (*Converter) DefineMacro ¶
func (c *Converter) DefineMacro(m *Macro, fn MakeModifier)
func (*Converter) DefineMacroWithCallbackt ¶
func (c *Converter) DefineMacroWithCallbackt(m *Macro, cb func() MakeModifier)
func (*Converter) Delete ¶
func (c *Converter) Delete(branch *BranchLocator) error
func (*Converter) LoadObject ¶
func (*Converter) MarshalJSON ¶
func (*Converter) Overlay ¶
func (c *Converter) Overlay(branch *BranchLocator, value interface{}) error
func (*Converter) Set ¶
func (c *Converter) Set(branch *BranchLocator, value interface{}) error
func (*Converter) TypeCheckModifier ¶
func (c *Converter) TypeCheckModifier(branch *BranchLocator, kind ValueType, cb ModifierCallback) (ModifierCallback, error)
type Macro ¶
type Macro struct { ReturnType ValueType EvalPhase MacrosEvalPhase VerbName string Argument bool }
type MacrosEvalPhase ¶
type MacrosEvalPhase = int
type MakeModifier ¶
type MakeModifier func(*Converter, *BranchLocator, *Macro) (ModifierCallback, error)
type Modifier ¶
type Modifier struct { Macro *Macro Branch *BranchLocator // contains filtered or unexported fields }
type ModifierCallback ¶
func MakeArrayLoadJSON ¶
func MakeArrayLoadJSON(c *Converter, branch *BranchLocator, jsonData []byte) (ModifierCallback, error)
func MakeModifierStringAsBASE64 ¶
func MakeModifierStringAsBASE64(_ *Converter, _ *BranchLocator, _ *Macro) (ModifierCallback, error)
func MakeModifierStringAsJSON ¶
func MakeModifierStringAsJSON(_ *Converter, _ *BranchLocator, _ *Macro) (ModifierCallback, error)
func MakeModifierStringAsYAML ¶
func MakeModifierStringAsYAML(_ *Converter, _ *BranchLocator, _ *Macro) (ModifierCallback, error)
func MakeModifierStringJoin ¶
func MakeModifierStringJoin(c *Converter, branch *BranchLocator, _ *Macro) (ModifierCallback, error)
func MakeObjectLoadJSON ¶
func MakeObjectLoadJSON(c *Converter, branch *BranchLocator, jsonData []byte) (ModifierCallback, error)
type Tree ¶
type Tree struct {
// contains filtered or unexported fields
}
Tree holds arbitrary JSON object and allows for walking and manipulating it (as needed for this package)
func (*Tree) Bytes ¶
Bytes returns JSON-encoded representation it is mostly used for testing, so it will panic if the object cannot be encoded
func (*Tree) BytesAsJSON ¶
BytesAsJSON returns JSON-encoded representation
func (*Tree) GetBoolean ¶
GetBoolean fetches Boolean at a given path
func (*Tree) ObjectEach ¶
ObjectEach is for walking Object branches
func (*Tree) SetBoolean ¶
SetBoolean at a given path
func (*Tree) String ¶
String returns JSON-encoded representation it is mostly used for testing, so it will panic if the object cannot be encoded
func (*Tree) StringAsJSON ¶
StringAsJSON returns JSON-encoded representation
type UnregisteredModifier ¶
type UnregisteredModifier struct { Macro *Macro // contains filtered or unexported fields }
func (*UnregisteredModifier) Register ¶
func (m *UnregisteredModifier) Register(c *Converter, branch *BranchLocator) (*Modifier, error)
Click to show internal directories.
Click to hide internal directories.