소스 검색

Add ToDuration

tags/v1.0.0
Chance Zibolski spf13 9 년 전
부모
커밋
3cc9db95ac
2개의 변경된 파일21개의 추가작업 그리고 0개의 파일을 삭제
  1. +5
    -0
      cast.go
  2. +16
    -0
      caste.go

+ 5
- 0
cast.go 파일 보기

@@ -17,6 +17,11 @@ func ToTime(i interface{}) time.Time {
return v
}

func ToDuration(i interface{}) time.Duration {
v, _ := ToDurationE(i)
return v
}

func ToFloat64(i interface{}) float64 {
v, _ := ToFloat64E(i)
return v


+ 16
- 0
caste.go 파일 보기

@@ -35,6 +35,22 @@ func ToTimeE(i interface{}) (tim time.Time, err error) {
}
}

func ToDurationE(i interface{}) (d time.Duration, err error) {
i = indirect(i)
jww.DEBUG.Println("ToDurationE called on type:", reflect.TypeOf(i))

switch s := i.(type) {
case time.Duration:
return s, nil
case string:
d, err = time.ParseDuration(s)
return
default:
err = fmt.Errorf("Unable to Cast %#v to Duration\n", i)
return
}
}

func ToBoolE(i interface{}) (bool, error) {
i = indirect(i)
jww.DEBUG.Println("ToBoolE called on type:", reflect.TypeOf(i))


불러오는 중...
취소
저장