Kaynağa Gözat

Add int64 and float64 type coercion in ToDuration

tags/v1.0.0
Tyler Power 8 yıl önce
ebeveyn
işleme
6770a32f65
2 değiştirilmiş dosya ile 17 ekleme ve 2 silme
  1. +11
    -2
      cast_test.go
  2. +6
    -0
      caste.go

+ 11
- 2
cast_test.go Dosyayı Görüntüle

@@ -6,9 +6,9 @@
package cast

import (
"testing"

"html/template"
"testing"
"time"

"github.com/stretchr/testify/assert"
)
@@ -151,3 +151,12 @@ func TestIndirectPointers(t *testing.T) {
assert.Equal(t, ToInt(y), 13)
assert.Equal(t, ToInt(z), 13)
}

func TestToDuration(t *testing.T) {
a := time.Second * 5
ai := int64(a)
b := time.Second * 5
bf := float64(b)
assert.Equal(t, ToDuration(ai), a)
assert.Equal(t, ToDuration(bf), b)
}

+ 6
- 0
caste.go Dosyayı Görüntüle

@@ -43,6 +43,12 @@ func ToDurationE(i interface{}) (d time.Duration, err error) {
switch s := i.(type) {
case time.Duration:
return s, nil
case int64:
d = time.Duration(s)
return
case float64:
d = time.Duration(s)
return
case string:
d, err = time.ParseDuration(s)
return


Yükleniyor…
İptal
Kaydet