// Add sets the object at the given path to value. func (loader *Loader) Add(src path.P, value interface{}) { klog.KPrintf("blueprint.loader.add.debug", "src=%s, value={%T, %v}", src, value, value) err := src.Set(loader.Values, value) if err == nil { return } if err == path.ErrInvalidType { var typ reflect.Type if typ, err = src.Type(loader.Values); err == nil { if value, err = convert(typ, value); err == nil { err = src.Set(loader.Values, value) } } } loader.ErrorAt(err, src) }