From b589b712414ae0bd805e769741eee307d9018f73 Mon Sep 17 00:00:00 2001 From: tr1v3r Date: Thu, 11 Apr 2024 00:27:41 +0800 Subject: [PATCH] feat: remove float64 field type --- field/expr.go | 18 ++++++++---------- field/float.go | 17 ----------------- field/number.go | 29 +++++++++++++++++------------ 3 files changed, 25 insertions(+), 39 deletions(-) delete mode 100644 field/float.go diff --git a/field/expr.go b/field/expr.go index d688e21f..86489210 100644 --- a/field/expr.go +++ b/field/expr.go @@ -184,22 +184,20 @@ func (e expr) Length() Number[int] { return newNumber[int](e.setE(clause.Expr{SQL: "LENGTH(?)", Vars: []interface{}{e.RawExpr()}})) } -func (e expr) Max() Float64 { - return Float64{newNumber[float64](e.setE(clause.Expr{SQL: "MAX(?)", Vars: []interface{}{e.RawExpr()}}))} +func (e expr) Max() Number[float64] { + return newNumber[float64](e.setE(clause.Expr{SQL: "MAX(?)", Vars: []interface{}{e.RawExpr()}})) } -func (e expr) Min() Float64 { - return Float64{newNumber[float64](e.setE(clause.Expr{SQL: "MIN(?)", Vars: []interface{}{e.RawExpr()}}))} - +func (e expr) Min() Number[float64] { + return newNumber[float64](e.setE(clause.Expr{SQL: "MIN(?)", Vars: []interface{}{e.RawExpr()}})) } -func (e expr) Avg() Float64 { - return Float64{newNumber[float64](e.setE(clause.Expr{SQL: "AVG(?)", Vars: []interface{}{e.RawExpr()}}))} - +func (e expr) Avg() Number[float64] { + return newNumber[float64](e.setE(clause.Expr{SQL: "AVG(?)", Vars: []interface{}{e.RawExpr()}})) } -func (e expr) Abs() Float64 { - return Float64{newNumber[float64](e.setE(clause.Expr{SQL: "ABS(?)", Vars: []interface{}{e.RawExpr()}}))} +func (e expr) Abs() Number[float64] { + return newNumber[float64](e.setE(clause.Expr{SQL: "ABS(?)", Vars: []interface{}{e.RawExpr()}})) } func (e expr) Null() AssignExpr { diff --git a/field/float.go b/field/float.go deleted file mode 100644 index a9e44151..00000000 --- a/field/float.go +++ /dev/null @@ -1,17 +0,0 @@ -package field - -// Float64 float64 type field -type Float64 struct { - Number[float64] -} - -// Floor implement floor method -func (field Float64) Floor() Number[int] { return newNumber[int](field.floor()) } - -// Float32 float32 type field -type Float32 struct { - Number[float32] -} - -// Floor implement floor method -func (field Float32) Floor() Number[int] { return newNumber[int](field.floor()) } diff --git a/field/number.go b/field/number.go index b8fbc64d..7ef5bb14 100644 --- a/field/number.go +++ b/field/number.go @@ -34,62 +34,67 @@ func (field Number[T]) NotBetween(left T, right T) Expr { // Add ... func (field Number[T]) Add(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.add(value)}} + return newNumber[T](field.add(value)) } // Sub ... func (field Number[T]) Sub(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.sub(value)}} + return newNumber[T](field.sub(value)) } // Mul ... func (field Number[T]) Mul(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.mul(value)}} + return newNumber[T](field.mul(value)) } // Div ... func (field Number[T]) Div(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.div(value)}} + return newNumber[T](field.div(value)) } // Mod ... func (field Number[T]) Mod(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.mod(value)}} + return newNumber[T](field.mod(value)) } // FloorDiv ... func (field Number[T]) FloorDiv(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.floorDiv(value)}} + return newNumber[T](field.floorDiv(value)) } // RightShift ... func (field Number[T]) RightShift(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.rightShift(value)}} + return newNumber[T](field.rightShift(value)) } // LeftShift ... func (field Number[T]) LeftShift(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.leftShift(value)}} + return newNumber[T](field.leftShift(value)) } // BitXor ... func (field Number[T]) BitXor(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.bitXor(value)}} + return newNumber[T](field.bitXor(value)) } // BitAnd ... func (field Number[T]) BitAnd(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.bitAnd(value)}} + return newNumber[T](field.bitAnd(value)) } // BitOr ... func (field Number[T]) BitOr(value T) Number[T] { - return Number[T]{genericsField: genericsField[T]{field.bitOr(value)}} + return newNumber[T](field.bitOr(value)) } // BitFlip ... func (field Number[T]) BitFlip() Number[T] { - return Number[T]{genericsField: genericsField[T]{field.bitFlip()}} + return newNumber[T](field.bitFlip()) +} + +// Floor ... +func (field Number[T]) Floor() Number[T] { + return newNumber[T](field.floor()) } // Zero set zero value