From 5bdb96a701d3bb043f74171b12ea6dc00f76e455 Mon Sep 17 00:00:00 2001 From: Alexandre Negrel Date: Thu, 5 Sep 2024 13:38:21 +0200 Subject: [PATCH] add sql.Scanner and sql.Value impl for uri --- pkg/uri/uri.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/uri/uri.go b/pkg/uri/uri.go index 04de56f..a1c8603 100644 --- a/pkg/uri/uri.go +++ b/pkg/uri/uri.go @@ -1,8 +1,10 @@ package uri import ( + "database/sql/driver" "encoding/json" "errors" + "fmt" "github.com/gofiber/fiber/v2/utils" "github.com/valyala/fasthttp" @@ -134,3 +136,19 @@ func (u *Uri) UnmarshalJSON(b []byte) error { *u, err = Parse(str) return err } + +// Value implements driver.Valuer. +func (u *Uri) Value() (driver.Value, error) { + return u.String(), nil +} + +// Scan implements sql.Scanner. +func (u *Uri) Scan(src any) error { + if str, ok := src.(string); ok { + var err error + *u, err = Parse(str) + return err + } + + return fmt.Errorf("cannot scan %T into %T", src, u) +}