commit 178cde6993d0573b61a94cdf7dca266d09238861
parent 7dfe58e2bfc446a1ba23f09197f67147cca93d1e
Author: Yongbin Kim <iam@yongbin.kim>
Date: Tue, 10 Jan 2023 07:30:37 +0000
feat: Added support for database/sql package
Diffstat:
1 file changed, 20 insertions(+), 0 deletions(-)
diff --git a/nanoid.go b/nanoid.go
@@ -1,6 +1,7 @@
package nanoid
import (
+ "database/sql/driver"
"io"
"sync"
"unsafe"
@@ -101,3 +102,22 @@ func (id NanoID) GoString() string {
func (id NanoID) Bytes() []byte {
return id[:]
}
+
+// Scan implements the sql.Scanner interface.
+func (id *NanoID) Scan(src interface{}) error {
+ switch src := src.(type) {
+ case []byte:
+ copy(id[:], src)
+ return nil
+ case string:
+ copy(id[:], src)
+ return nil
+ }
+
+ return nil
+}
+
+// Value implements the driver.Valuer interface.
+func (id NanoID) Value() (driver.Value, error) {
+ return id.String(), nil
+}