func()

in azureappconfiguration/internal/tree/tree.go [15:44]


func (t *Tree) Insert(parts []string, value any) {
	tree := t
	for i, part := range parts {
		if tree.children == nil {
			tree.children = make(map[string]*Tree)
		}

		childTree, ok := tree.children[part]
		if !ok {
			childTree = &Tree{}
			tree.children[part] = childTree
		}

		tree = childTree
		if i == len(parts)-1 {
			switch obj := value.(type) {
			case map[string]any:
				for k, v := range obj {
					tree.Insert([]string{k}, v)
				}
			case []any:
				for k, v := range obj {
					tree.Insert([]string{strconv.Itoa(k)}, v)
				}
			default:
				tree.value = value
			}
		}
	}
}