overlay

package
v0.39.0 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AnnotationNs template.AnnotationNs = "overlay"

	AnnotationMerge   template.AnnotationName = "overlay/merge" // default
	AnnotationRemove  template.AnnotationName = "overlay/remove"
	AnnotationReplace template.AnnotationName = "overlay/replace"
	AnnotationInsert  template.AnnotationName = "overlay/insert" // array only
	AnnotationAppend  template.AnnotationName = "overlay/append" // array only
	AnnotationAssert  template.AnnotationName = "overlay/assert"

	AnnotationMatch              template.AnnotationName = "overlay/match"
	AnnotationMatchChildDefaults template.AnnotationName = "overlay/match-child-defaults"
)
View Source
const (
	MatchAnnotationKwargBy        string = "by"
	MatchAnnotationKwargExpects   string = "expects"
	MatchAnnotationKwargMissingOK string = "missing_ok"
	MatchAnnotationKwargWhen      string = "when"
)
View Source
const (
	ReplaceAnnotationKwargVia   string = "via"
	ReplaceAnnotationKwargOrAdd string = "or_add"
)

Variables

View Source
var (
	API = starlark.StringDict{
		"overlay": &starlarkstruct.Module{
			Name: "overlay",
			Members: starlark.StringDict{
				"apply":   starlark.NewBuiltin("overlay.apply", core.ErrWrapper(overlayModule{}.Apply)),
				"index":   starlark.NewBuiltin("overlay.index", core.ErrWrapper(overlayModule{}.Index)),
				"all":     starlark.NewBuiltin("overlay.all", core.ErrWrapper(overlayModule{}.All)),
				"map_key": overlayModule{}.MapKey(),
				"subset":  starlark.NewBuiltin("overlay.subset", core.ErrWrapper(overlayModule{}.Subset)),

				"and_op": starlark.NewBuiltin("overlay.and_op", core.ErrWrapper(overlayModule{}.AndOp)),
				"or_op":  starlark.NewBuiltin("overlay.or_op", core.ErrWrapper(overlayModule{}.OrOp)),
				"not_op": starlark.NewBuiltin("overlay.not_op", core.ErrWrapper(overlayModule{}.NotOp)),
			},
		},
	}
)

Functions

func AnnotateForPlainMerge added in v0.39.0

func AnnotateForPlainMerge(node yamlmeta.Node) error

AnnotateForPlainMerge configures `node` to be an overlay doing a "plain merge": - allow new keys via `@overlay/match missing_ok=True` - allow arrays and scalars to be replaced with given value (regardless of type) via `@overlay/replace or_add=True`

Returns an error when `node` contains templating; `node` must be plain YAML.

Types

type ArrayItemMatchAnnotation

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

func NewArrayItemMatchAnnotation

func NewArrayItemMatchAnnotation(newItem *yamlmeta.ArrayItem,
	defaults MatchChildDefaultsAnnotation,
	thread *starlark.Thread) (ArrayItemMatchAnnotation, error)

func (ArrayItemMatchAnnotation) Indexes

func (a ArrayItemMatchAnnotation) Indexes(leftArray *yamlmeta.Array) ([]int, error)

func (ArrayItemMatchAnnotation) MatchNodes

func (a ArrayItemMatchAnnotation) MatchNodes(leftArray *yamlmeta.Array) ([]int, []*filepos.Position, error)

type AssertAnnotation added in v0.24.0

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

func NewAssertAnnotation added in v0.24.0

func NewAssertAnnotation(newNode template.EvaluationNode, thread *starlark.Thread) (AssertAnnotation, error)

func (AssertAnnotation) Check added in v0.24.0

func (a AssertAnnotation) Check(existingNode template.EvaluationNode) error

type Comparison added in v0.24.0

type Comparison struct{}

func (Comparison) Compare added in v0.24.0

func (b Comparison) Compare(left, right interface{}) (bool, string)

func (Comparison) CompareLeafs added in v0.24.0

func (b Comparison) CompareLeafs(left, right interface{}) (bool, string)

type DocumentMatchAnnotation

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

func NewDocumentMatchAnnotation

func NewDocumentMatchAnnotation(newDoc *yamlmeta.Document,
	defaults MatchChildDefaultsAnnotation,
	exact bool, thread *starlark.Thread) (DocumentMatchAnnotation, error)

func (DocumentMatchAnnotation) IndexTuples

func (a DocumentMatchAnnotation) IndexTuples(leftDocSets []*yamlmeta.DocumentSet) ([][]int, error)

func (DocumentMatchAnnotation) MatchNodes

func (a DocumentMatchAnnotation) MatchNodes(leftDocSets []*yamlmeta.DocumentSet) ([][]int, []*filepos.Position, error)

type InsertAnnotation

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

func NewInsertAnnotation

func NewInsertAnnotation(newItem template.EvaluationNode) (InsertAnnotation, error)

func (InsertAnnotation) IsAfter

func (a InsertAnnotation) IsAfter() bool

func (InsertAnnotation) IsBefore

func (a InsertAnnotation) IsBefore() bool

type MapItemMatchAnnotation

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

func NewMapItemMatchAnnotation

func NewMapItemMatchAnnotation(newItem *yamlmeta.MapItem,
	defaults MatchChildDefaultsAnnotation,
	thread *starlark.Thread) (MapItemMatchAnnotation, error)

func (MapItemMatchAnnotation) Indexes added in v0.26.0

func (a MapItemMatchAnnotation) Indexes(leftMap *yamlmeta.Map) ([]int, error)

func (MapItemMatchAnnotation) MatchNodes added in v0.26.0

func (a MapItemMatchAnnotation) MatchNodes(leftMap *yamlmeta.Map) ([]int, []*filepos.Position, error)

type MatchAnnotationExpectsKwarg

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

func (MatchAnnotationExpectsKwarg) Check

func (a MatchAnnotationExpectsKwarg) Check(matches []*filepos.Position) error

func (*MatchAnnotationExpectsKwarg) FillInDefaults added in v0.20.0

func (a *MatchAnnotationExpectsKwarg) FillInDefaults(defaults MatchChildDefaultsAnnotation)

type MatchAnnotationNumMatchError added in v0.28.0

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

func (MatchAnnotationNumMatchError) Error added in v0.28.0

type MatchChildDefaultsAnnotation added in v0.20.0

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

func NewEmptyMatchChildDefaultsAnnotation added in v0.20.0

func NewEmptyMatchChildDefaultsAnnotation() MatchChildDefaultsAnnotation

func NewMatchChildDefaultsAnnotation added in v0.20.0

func NewMatchChildDefaultsAnnotation(node template.EvaluationNode,
	parentMatchChildDefaults MatchChildDefaultsAnnotation) (MatchChildDefaultsAnnotation, error)

type Op added in v0.32.0

type Op struct {
	Left  interface{}
	Right interface{}

	Thread *starlark.Thread

	ExactMatch bool
}

func (Op) Apply added in v0.32.0

func (o Op) Apply() (interface{}, error)

type ReplaceAnnotation added in v0.19.0

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

func NewReplaceAnnotation added in v0.19.0

func NewReplaceAnnotation(newNode template.EvaluationNode, thread *starlark.Thread) (ReplaceAnnotation, error)

func (ReplaceAnnotation) OrAdd added in v0.34.0

func (a ReplaceAnnotation) OrAdd() bool

func (ReplaceAnnotation) Value added in v0.19.0

func (a ReplaceAnnotation) Value(existingNode template.EvaluationNode) (interface{}, error)

Jump to

Keyboard shortcuts

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