func walkFullMap()

in walk.go [111:138]


func walkFullMap(mVal, rootVal reflect.Value, p llpath.Path, expandPaths bool, wo walkObserver) (err error) {
	if mVal.Kind() != reflect.Map {
		return fmt.Errorf("could not walk not map type for %s", mVal)
	}

	for _, kVal := range mVal.MapKeys() {
		vVal := mVal.MapIndex(kVal)
		k := kVal.String()

		var newPath llpath.Path
		if !expandPaths {
			newPath = p.ExtendMap(k)
		} else {
			additionalPath, err := llpath.ParsePath(k)
			if err != nil {
				return err
			}
			newPath = p.Concat(additionalPath)
		}

		err = walkFull(vVal, rootVal, newPath, expandPaths, wo)
		if err != nil {
			return err
		}
	}

	return nil
}