MCPcopy Index your code
hub / github.com/coder/coder / UnmarshalJSON

Method UnmarshalJSON

coderd/httpapi/json.go:30–52  ·  view source on GitHub ↗

UnmarshalJSON implements json.Unmarshaler.

(b []byte)

Source from the content-addressed store, hash-verified

28
29// UnmarshalJSON implements json.Unmarshaler.
30func (d *Duration) UnmarshalJSON(b []byte) error {
31 var v interface{}
32 err := json.Unmarshal(b, &v)
33 if err != nil {
34 return xerrors.Errorf("unmarshal JSON value: %w", err)
35 }
36
37 switch value := v.(type) {
38 case float64:
39 *d = Duration(time.Duration(value))
40 return nil
41 case string:
42 tmp, err := time.ParseDuration(value)
43 if err != nil {
44 return xerrors.Errorf("parse duration %q: %w", value, err)
45 }
46
47 *d = Duration(tmp)
48 return nil
49 }
50
51 return xerrors.New("invalid duration")
52}

Callers 1

TestDurationFunction · 0.95

Calls 5

DurationTypeAlias · 0.85
DurationMethod · 0.80
NewMethod · 0.65
UnmarshalMethod · 0.45
ErrorfMethod · 0.45

Tested by 1

TestDurationFunction · 0.76