gotosocial/vendor/github.com/uptrace/bun/dialect/sqlitedialect/scan.go
kim (grufwub) cec939f2c2 add initial sqlite support, add modernc.org/sqlite to vendored libs
Signed-off-by: kim (grufwub) <grufwub@gmail.com>
2021-08-26 11:18:02 +01:00

28 lines
527 B
Go

package sqlitedialect
import (
"fmt"
"reflect"
"github.com/uptrace/bun/schema"
)
func scanner(typ reflect.Type) schema.ScannerFunc {
if typ.Kind() == reflect.Interface {
return scanInterface
}
return schema.Scanner(typ)
}
func scanInterface(dest reflect.Value, src interface{}) error {
if dest.IsNil() {
dest.Set(reflect.ValueOf(src))
return nil
}
dest = dest.Elem()
if fn := scanner(dest.Type()); fn != nil {
return fn(dest, src)
}
return fmt.Errorf("bun: can't scan %#v into %s", src, dest.Type())
}