MCPcopy
hub / github.com/purpleidea/mgmt / Apply

Method Apply

lang/ast/structs.go:415–425  ·  view source on GitHub ↗

Apply is a general purpose iterator method that operates on any AST node. It is not used as the primary AST traversal function because it is less readable and easy to reason about than manually implementing traversal for each node. Nevertheless, it is a useful facility for operations that might only

(fn func(interfaces.Node) error)

Source from the content-addressed store, hash-verified

413// Nevertheless, it is a useful facility for operations that might only apply to
414// a select number of node types, since they won't need extra noop iterators...
415func (obj *StmtRes) Apply(fn func(interfaces.Node) error) error {
416 if err := obj.Name.Apply(fn); err != nil {
417 return err
418 }
419 for _, x := range obj.Contents {
420 if err := x.Apply(fn); err != nil {
421 return err
422 }
423 }
424 return fn(obj)
425}
426
427// Init initializes this branch of the AST, and returns an error if it fails to
428// validate.

Callers

nothing calls this directly

Calls 1

ApplyMethod · 0.65

Tested by

no test coverage detected