summaryrefslogtreecommitdiff
path: root/vendor/github.com/superseriousbusiness/activity/streams/values/duration/gen_duration.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/superseriousbusiness/activity/streams/values/duration/gen_duration.go')
-rw-r--r--vendor/github.com/superseriousbusiness/activity/streams/values/duration/gen_duration.go146
1 files changed, 0 insertions, 146 deletions
diff --git a/vendor/github.com/superseriousbusiness/activity/streams/values/duration/gen_duration.go b/vendor/github.com/superseriousbusiness/activity/streams/values/duration/gen_duration.go
deleted file mode 100644
index 8125a6822..000000000
--- a/vendor/github.com/superseriousbusiness/activity/streams/values/duration/gen_duration.go
+++ /dev/null
@@ -1,146 +0,0 @@
-// Code generated by astool. DO NOT EDIT.
-
-package duration
-
-import (
- "fmt"
- "math"
- "regexp"
- "strconv"
- "time"
-)
-
-// SerializeDuration converts a duration value to an interface representation
-// suitable for marshalling into a text or binary format.
-func SerializeDuration(this time.Duration) (interface{}, error) {
- // Seriously questioning my life choices.
- s := "P"
- if this < 0 {
- s = "-P"
- this = -1 * this
- }
- var tally time.Duration
- // Assume 8760 Hours per 365 days, cannot account for leap years in xsd:duration. :(
- if years := this.Hours() / 8760.0; years >= 1 {
- nYears := int64(math.Floor(years))
- tally += time.Duration(nYears) * 8760 * time.Hour
- s = fmt.Sprintf("%s%dY", s, nYears)
- }
- // Assume 30 days per month, cannot account for months lasting 31, 30, 29, or 28 days in xsd:duration. :(
- if months := (this.Hours() - tally.Hours()) / 720.0; months >= 1 {
- nMonths := int64(math.Floor(months))
- tally += time.Duration(nMonths) * 720 * time.Hour
- s = fmt.Sprintf("%s%dM", s, nMonths)
- }
- if days := (this.Hours() - tally.Hours()) / 24.0; days >= 1 {
- nDays := int64(math.Floor(days))
- tally += time.Duration(nDays) * 24 * time.Hour
- s = fmt.Sprintf("%s%dD", s, nDays)
- }
- if tally < this {
- s = fmt.Sprintf("%sT", s)
- if hours := this.Hours() - tally.Hours(); hours >= 1 {
- nHours := int64(math.Floor(hours))
- tally += time.Duration(nHours) * time.Hour
- s = fmt.Sprintf("%s%dH", s, nHours)
- }
- if minutes := this.Minutes() - tally.Minutes(); minutes >= 1 {
- nMinutes := int64(math.Floor(minutes))
- tally += time.Duration(nMinutes) * time.Minute
- s = fmt.Sprintf("%s%dM", s, nMinutes)
- }
- if seconds := this.Seconds() - tally.Seconds(); seconds >= 1 {
- nSeconds := int64(math.Floor(seconds))
- tally += time.Duration(nSeconds) * time.Second
- s = fmt.Sprintf("%s%dS", s, nSeconds)
- }
- }
- return s, nil
-}
-
-// DeserializeDuration creates duration value from an interface representation
-// that has been unmarshalled from a text or binary format.
-func DeserializeDuration(this interface{}) (time.Duration, error) {
- // Maybe this time it will be easier.
- if s, ok := this.(string); ok {
- isNeg := false
- if s[0] == '-' {
- isNeg = true
- s = s[1:]
- }
- if s[0] != 'P' {
- return 0, fmt.Errorf("%s malformed: missing 'P' for xsd:duration", s)
- }
- re := regexp.MustCompile(`P(\d*Y)?(\d*M)?(\d*D)?(T(\d*H)?(\d*M)?(\d*S)?)?`)
- res := re.FindStringSubmatch(s)
- var dur time.Duration
- nYear := res[1]
- if len(nYear) > 0 {
- nYear = nYear[:len(nYear)-1]
- vYear, err := strconv.ParseInt(nYear, 10, 64)
- if err != nil {
- return 0, err
- }
- // Assume 8760 Hours per 365 days, cannot account for leap years in xsd:duration. :(
- dur += time.Duration(vYear) * time.Hour * 8760
- }
- nMonth := res[2]
- if len(nMonth) > 0 {
- nMonth = nMonth[:len(nMonth)-1]
- vMonth, err := strconv.ParseInt(nMonth, 10, 64)
- if err != nil {
- return 0, err
- }
- // Assume 30 days per month, cannot account for months lasting 31, 30, 29, or 28 days in xsd:duration. :(
- dur += time.Duration(vMonth) * time.Hour * 720
- }
- nDay := res[3]
- if len(nDay) > 0 {
- nDay = nDay[:len(nDay)-1]
- vDay, err := strconv.ParseInt(nDay, 10, 64)
- if err != nil {
- return 0, err
- }
- dur += time.Duration(vDay) * time.Hour * 24
- }
- nHour := res[5]
- if len(nHour) > 0 {
- nHour = nHour[:len(nHour)-1]
- vHour, err := strconv.ParseInt(nHour, 10, 64)
- if err != nil {
- return 0, err
- }
- dur += time.Duration(vHour) * time.Hour
- }
- nMinute := res[6]
- if len(nMinute) > 0 {
- nMinute = nMinute[:len(nMinute)-1]
- vMinute, err := strconv.ParseInt(nMinute, 10, 64)
- if err != nil {
- return 0, err
- }
- dur += time.Duration(vMinute) * time.Minute
- }
- nSecond := res[7]
- if len(nSecond) > 0 {
- nSecond = nSecond[:len(nSecond)-1]
- vSecond, err := strconv.ParseInt(nSecond, 10, 64)
- if err != nil {
- return 0, err
- }
- dur += time.Duration(vSecond) * time.Second
- }
- if isNeg {
- dur *= -1
- }
- return dur, nil
- } else {
- return 0, fmt.Errorf("%v cannot be interpreted as a string for xsd:duration", this)
- }
-}
-
-// LessDuration returns true if the left duration value is less than the right
-// value.
-func LessDuration(lhs, rhs time.Duration) bool {
- return lhs < rhs
-}