47 out := make([]string, len(*s.value)) |
47 out := make([]string, len(*s.value)) |
48 for i, d := range *s.value { |
48 for i, d := range *s.value { |
49 out[i] = fmt.Sprintf("%s", d) |
49 out[i] = fmt.Sprintf("%s", d) |
50 } |
50 } |
51 return "[" + strings.Join(out, ",") + "]" |
51 return "[" + strings.Join(out, ",") + "]" |
|
52 } |
|
53 |
|
54 func (s *durationSliceValue) fromString(val string) (time.Duration, error) { |
|
55 return time.ParseDuration(val) |
|
56 } |
|
57 |
|
58 func (s *durationSliceValue) toString(val time.Duration) string { |
|
59 return fmt.Sprintf("%s", val) |
|
60 } |
|
61 |
|
62 func (s *durationSliceValue) Append(val string) error { |
|
63 i, err := s.fromString(val) |
|
64 if err != nil { |
|
65 return err |
|
66 } |
|
67 *s.value = append(*s.value, i) |
|
68 return nil |
|
69 } |
|
70 |
|
71 func (s *durationSliceValue) Replace(val []string) error { |
|
72 out := make([]time.Duration, len(val)) |
|
73 for i, d := range val { |
|
74 var err error |
|
75 out[i], err = s.fromString(d) |
|
76 if err != nil { |
|
77 return err |
|
78 } |
|
79 } |
|
80 *s.value = out |
|
81 return nil |
|
82 } |
|
83 |
|
84 func (s *durationSliceValue) GetSlice() []string { |
|
85 out := make([]string, len(*s.value)) |
|
86 for i, d := range *s.value { |
|
87 out[i] = s.toString(d) |
|
88 } |
|
89 return out |
52 } |
90 } |
53 |
91 |
54 func durationSliceConv(val string) (interface{}, error) { |
92 func durationSliceConv(val string) (interface{}, error) { |
55 val = strings.Trim(val, "[]") |
93 val = strings.Trim(val, "[]") |
56 // Empty string would cause a slice with one (empty) entry |
94 // Empty string would cause a slice with one (empty) entry |