aboutsummaryrefslogtreecommitdiff
path: root/lib/math
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2021-03-01 13:15:34 +0700
committerShulhan <ms@kilabit.info>2021-03-01 13:15:38 +0700
commit95b1982ffe0ca2e5b5316d7d2a591565d05ef368 (patch)
tree368faa372d7efa7539e50223c2ab1ac16baf9a4f /lib/math
parent4726f8cbc2e3023ab8e0c7cc0f7c858767dedb83 (diff)
downloadpakakeh.go-95b1982ffe0ca2e5b5316d7d2a591565d05ef368.tar.xz
big: add method that implement sql/driver.Valuer for type Rat
The Rat.Value() return the value as []byte.
Diffstat (limited to 'lib/math')
-rw-r--r--lib/math/big/rat.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/math/big/rat.go b/lib/math/big/rat.go
index abef7d2c..2c4a66c9 100644
--- a/lib/math/big/rat.go
+++ b/lib/math/big/rat.go
@@ -6,6 +6,7 @@ package big
import (
"bytes"
+ "database/sql/driver"
"fmt"
"log"
"math/big"
@@ -451,6 +452,20 @@ func (r *Rat) UnmarshalJSON(in []byte) (err error) {
}
//
+// Value return the []byte value for database/sql, as defined in
+// sql/driver.Valuer.
+//
+func (r *Rat) Value() (driver.Value, error) {
+ var s string
+ if r == nil {
+ s = "0"
+ } else {
+ s = r.String()
+ }
+ return []byte(s), nil
+}
+
+//
// toRat convert any type to Rat or nil if type is unknown.
// If in is not nil, it will be set to out.
//