diff options
Diffstat (limited to 'server/store/string_slice.go')
-rw-r--r-- | server/store/string_slice.go | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/server/store/string_slice.go b/server/store/string_slice.go deleted file mode 100644 index a443cdd..0000000 --- a/server/store/string_slice.go +++ /dev/null @@ -1,38 +0,0 @@ -package store - -import ( - "database/sql/driver" - "encoding/json" -) - -// StringSlice is a []string which will be stored in a database as a JSON array. -type StringSlice []string - -var _ driver.Valuer = (*StringSlice)(nil) - -// Value implements the driver.Valuer interface, marshalling the raw value to -// a JSON array. -func (s StringSlice) Value() (driver.Value, error) { - v, err := json.Marshal(s) - if err != nil { - return nil, err - } - return string(v), err -} - -// Scan implements the sql.Scanner interface, unmarshalling the value coming -// off the wire and storing the result in the StringSlice. -func (s *StringSlice) Scan(value interface{}) error { - if value == nil { - s = &StringSlice{} - return nil - } - var err error - v, err := driver.String.ConvertValue(value) - if err == nil { - if v, ok := v.([]byte); ok { - err = json.Unmarshal(v, s) - } - } - return err -} |