mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-12-17 14:18:55 +08:00
76 lines
1.2 KiB
Go
76 lines
1.2 KiB
Go
package util
|
|
|
|
import "time"
|
|
|
|
func ToStringSlice(is []interface{}) []string {
|
|
ss := make([]string, len(is), len(is))
|
|
|
|
for i, _ := range is {
|
|
ss[i] = is[i].(string)
|
|
}
|
|
return ss
|
|
}
|
|
|
|
func ToString(i interface{}) string {
|
|
if v, ok := i.(string); ok {
|
|
return v
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func ToTime(i interface{}) time.Time {
|
|
if v, ok := i.(time.Time); ok {
|
|
return v
|
|
}
|
|
var t time.Time
|
|
return t
|
|
}
|
|
|
|
func ToInterfaceSlice(i interface{}) []interface{} {
|
|
if v, ok := i.([]interface{}); ok {
|
|
return v
|
|
}
|
|
var s []interface{}
|
|
return s
|
|
}
|
|
|
|
func ToInt64(i interface{}) int64 {
|
|
if v, ok := i.(int64); ok {
|
|
return v
|
|
}
|
|
var n int64
|
|
return n
|
|
}
|
|
|
|
func ToFloat64(i interface{}) float64 {
|
|
if v, ok := i.(float64); ok {
|
|
return v
|
|
}
|
|
var n float64
|
|
return n
|
|
}
|
|
|
|
func ToXmlrpcStruct(i interface{}) map[string]interface{} {
|
|
if v, ok := i.(map[string]interface{}); ok {
|
|
return v
|
|
}
|
|
var s map[string]interface{}
|
|
return s
|
|
}
|
|
|
|
func ToBool(i interface{}) bool {
|
|
if v, ok := i.(bool); ok {
|
|
return v
|
|
}
|
|
var b bool
|
|
return b
|
|
}
|
|
|
|
func ToIntSlice(is []interface{}) []int64 {
|
|
numbers := make([]int64, len(is), len(is))
|
|
|
|
for i, _ := range is {
|
|
numbers[i] = ToInt64(is[i])
|
|
}
|
|
return numbers
|
|
}
|