in azkustodata/value/value.go [94:123]
func TryConvert[T any](holder interface{}, p *pointerValue[T], v reflect.Value) bool {
t := v.Type()
if holder == nil || p.value == nil {
v.Set(reflect.Zero(t))
return true
}
if reflect.TypeOf(*p.value).ConvertibleTo(t) {
v.Set(reflect.ValueOf(*p.value).Convert(t))
return true
}
if reflect.TypeOf(p.value).ConvertibleTo(t) {
v.Set(reflect.ValueOf(p.value).Convert(t))
return true
}
if reflect.TypeOf(holder).ConvertibleTo(t) {
v.Set(reflect.ValueOf(holder).Convert(t))
return true
}
if reflect.TypeOf(&holder).ConvertibleTo(t) {
v.Set(reflect.ValueOf(&holder).Convert(t))
return true
}
return false
}