func (dur Duration) MarshalText() ([]byte, error) {
	h := dur / Duration(time.Hour)
	m := dur % Duration(time.Hour) / Duration(time.Minute)
	s := dur % Duration(time.Minute) / Duration(time.Second)
	ms := dur % Duration(time.Second) / Duration(time.Millisecond)
	if ms == 0 {
		return []byte(fmt.Sprintf("%02d:%02d:%02d", h, m, s)), nil
	}
	return []byte(fmt.Sprintf("%02d:%02d:%02d.%03d", h, m, s, ms)), nil
}
MarshalText implements the encoding.TextMarshaler interface.
package vast
import (
	"fmt"
	"strconv"
	"strings"
	"time"
)
type Duration time.Duration