Example #1
0
// 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)
}