mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-26 13:46:39 +00:00
ed46224573
* Add SQLite support, fix un-thread-safe DB caches, small performance fixes Signed-off-by: kim (grufwub) <grufwub@gmail.com> * add SQLite licenses to README Signed-off-by: kim (grufwub) <grufwub@gmail.com> * appease the linter, and fix my dumbass-ery Signed-off-by: kim (grufwub) <grufwub@gmail.com> * make requested changes Signed-off-by: kim (grufwub) <grufwub@gmail.com> * add back comment Signed-off-by: kim (grufwub) <grufwub@gmail.com>
29 lines
527 B
Go
29 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())
|
|
}
|