|
|
|
|
@ -52,7 +52,6 @@ package cvls
|
|
|
|
|
import (
|
|
|
|
|
"core/errs"
|
|
|
|
|
"math"
|
|
|
|
|
"math/big"
|
|
|
|
|
"time"
|
|
|
|
|
"unsafe"
|
|
|
|
|
)
|
|
|
|
|
@ -125,23 +124,6 @@ func MakeCValueComplex128(val complex128) CValue {
|
|
|
|
|
return makeCComplex[complex128](val, KindComplex128)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func MakeCValueBigInt(val *BigInt) CValue {
|
|
|
|
|
if val == nil {
|
|
|
|
|
return CValue{Spec: makeSpecScalar(KindBigInt), State: StateNil}
|
|
|
|
|
}
|
|
|
|
|
if val.Cmp(bigZero) == 0 {
|
|
|
|
|
return CValue{Spec: makeSpecScalar(KindBigInt), State: StateZero}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if val.IsInt64() {
|
|
|
|
|
return CValue{
|
|
|
|
|
Spec: makeSpecScalar(KindBigInt),
|
|
|
|
|
State: StateVersion,
|
|
|
|
|
intVal: val.Int64(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return CValue{Spec: makeSpecScalar(KindBigInt), anyVal: val}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func MakeCValueBytes(val Bytes) CValue {
|
|
|
|
|
if val == nil {
|
|
|
|
|
@ -265,8 +247,6 @@ func (v CValue) Value() any {
|
|
|
|
|
val, _ = v.AsUUID()
|
|
|
|
|
case KindDate:
|
|
|
|
|
val, _ = v.AsDate()
|
|
|
|
|
case KindBigInt:
|
|
|
|
|
val, _ = v.AsBigInt()
|
|
|
|
|
case KindReflect:
|
|
|
|
|
val, _ = v.AsReflect()
|
|
|
|
|
case KindPackable:
|
|
|
|
|
@ -436,21 +416,6 @@ func (v CValue) AsDate() (Date, bool) {
|
|
|
|
|
return time.Unix(0, v.intVal).UTC(), true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (v CValue) AsBigInt() (*BigInt, bool) {
|
|
|
|
|
if v.ValueKind() != KindBigInt {
|
|
|
|
|
return nil, false
|
|
|
|
|
}
|
|
|
|
|
if v.HasZero() {
|
|
|
|
|
return big.NewInt(0), true
|
|
|
|
|
}
|
|
|
|
|
if v.IsDefer() {
|
|
|
|
|
return v.anyVal.(func() *BigInt)(), true
|
|
|
|
|
}
|
|
|
|
|
if v.HasVersion() {
|
|
|
|
|
return big.NewInt(v.intVal), true
|
|
|
|
|
}
|
|
|
|
|
return v.anyVal.(*BigInt), true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (v CValue) AsReflect() (Reflect, bool) { return asCValueFromAny[Reflect](v, KindReflect) }
|
|
|
|
|
|
|
|
|
|
|