MCPcopy
hub / github.com/nlpodyssey/spago / walk

Method walk

nn/traversal.go:31–47  ·  view source on GitHub ↗

walk iterates through all the parameters of m.

(m any)

Source from the content-addressed store, hash-verified

29
30// walk iterates through all the parameters of m.
31func (pt paramsTraversal) walk(m any) {
32 if m, ok := m.(ParamsTraverser); ok {
33 m.TraverseParams(pt.paramsFunc)
34 return
35 }
36 forEachField(m, func(field any, name string) {
37 v := reflect.ValueOf(field)
38 switch v.Kind() {
39 case reflect.Struct, reflect.Ptr, reflect.Interface:
40 pt.walkStructOrPtr(field, name)
41 case reflect.Slice, reflect.Array:
42 pt.walkSlice(v, name)
43 case reflect.Map:
44 pt.walkMap(v, name)
45 }
46 })
47}
48
49func (pt paramsTraversal) walkStructOrPtr(item any, name string) bool {
50 v := reflect.ValueOf(item)

Callers 5

walkStructOrPtrMethod · 0.95
ApplyFunction · 0.80
ParametersFunction · 0.80
ForEachParamFunction · 0.80
ForEachParamStrictFunction · 0.80

Calls 5

walkStructOrPtrMethod · 0.95
walkSliceMethod · 0.95
walkMapMethod · 0.95
forEachFieldFunction · 0.85
TraverseParamsMethod · 0.65

Tested by

no test coverage detected