Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alist-org
GitHub Repository: alist-org/alist
Path: blob/main/internal/model/paths.go
1560 views
1
package model
2
3
import (
4
"database/sql/driver"
5
"encoding/json"
6
"fmt"
7
)
8
9
type Paths []string
10
11
func (p Paths) Value() (driver.Value, error) {
12
return json.Marshal([]string(p))
13
}
14
15
func (p *Paths) Scan(value interface{}) error {
16
switch v := value.(type) {
17
case []byte:
18
return json.Unmarshal(v, (*[]string)(p))
19
case string:
20
return json.Unmarshal([]byte(v), (*[]string)(p))
21
case nil:
22
*p = nil
23
return nil
24
default:
25
return fmt.Errorf("cannot scan %T", value)
26
}
27
}
28
29