+ s := time.Duration(d).String()
+ s = strings.Replace(s, "m0s", "m", 1)
+ s = strings.Replace(s, "h0m", "h", 1)
+ return s
+}
+
+// Duration returns a time.Duration.
+func (d Duration) Duration() time.Duration {
+ return time.Duration(d)
+}
+
+// Set implements the flag.Value interface and sets the duration value by using time.ParseDuration to parse the string.
+func (d *Duration) Set(s string) error {
+ dur, err := time.ParseDuration(s)
+ *d = Duration(dur)
+ return err