in pkg/cloud/api/copy.go [65:79]
func (c *copier) doValues(p Path, dest, src reflect.Value) error {
switch {
case isBasicV(dest) && isBasicV(src):
return c.doBasic(p, dest, src)
case src.Type().Kind() == reflect.Pointer && dest.Type().Kind() == reflect.Pointer:
return c.doPointer(p, dest, src)
case src.Type().Kind() == reflect.Slice && dest.Type().Kind() == reflect.Slice:
return c.doSlice(p, dest, src)
case src.Type().Kind() == reflect.Struct && dest.Type().Kind() == reflect.Struct:
return c.doStruct(p, dest, src)
case src.Type().Kind() == reflect.Map && dest.Type().Kind() == reflect.Map:
return c.doMap(p, dest, src)
}
return fmt.Errorf("copyValues: incompatible types: src %T, dest %T", src.Interface(), dest.Interface())
}