You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

union.go 395 B

1 year ago
123456789101112131415161718192021222324252627
  1. package union
  2. import (
  3. "fmt"
  4. "reflect"
  5. "gitlink.org.cn/cloudream/common/utils/serder"
  6. )
  7. type Value[T any] struct {
  8. Value T
  9. }
  10. func (o *Value[T]) Scan(src interface{}) error {
  11. data, ok := src.([]uint8)
  12. if !ok {
  13. return fmt.Errorf("unknow src type: %v", reflect.TypeOf(data))
  14. }
  15. val, err := serder.JSONToObjectEx[T](data)
  16. if err != nil {
  17. return err
  18. }
  19. o.Value = val
  20. return nil
  21. }