96 lines
1.3 KiB
Go
96 lines
1.3 KiB
Go
package js
|
|
|
|
// do whatever it takes to get an int64
|
|
func toInt64(value interface{}) int64 {
|
|
if value == nil {
|
|
return 0
|
|
}
|
|
switch v := value.(type) {
|
|
case int:
|
|
return int64(v)
|
|
case int8:
|
|
return int64(v)
|
|
case int16:
|
|
return int64(v)
|
|
case int32:
|
|
return int64(v)
|
|
case int64:
|
|
return int64(v)
|
|
case uint:
|
|
return int64(v)
|
|
case uint8:
|
|
return int64(v)
|
|
case uint16:
|
|
return int64(v)
|
|
case uint32:
|
|
return int64(v)
|
|
case uint64:
|
|
return int64(v)
|
|
case float32:
|
|
return int64(v)
|
|
case float64:
|
|
return int64(v)
|
|
case *int:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *int8:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *int16:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *int32:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *int64:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *uint:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *uint8:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *uint16:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *uint32:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *uint64:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *float32:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
case *float64:
|
|
if v == nil {
|
|
return 0
|
|
}
|
|
return int64(*v)
|
|
}
|
|
return 0
|
|
}
|