diff --git a/driver/driver.go b/driver/driver.go index f473220..280611f 100644 --- a/driver/driver.go +++ b/driver/driver.go @@ -546,8 +546,8 @@ func (s *stmt) setupBindings(args []driver.NamedValue) (err error) { err = s.Stmt.BindTime(id, a, s.tmWrite) case util.JSON: err = s.Stmt.BindJSON(id, a.Value) - case util.PointerUnwrap: - err = s.Stmt.BindPointer(id, util.UnwrapPointer(a)) + case util.Pointer: + err = s.Stmt.BindPointer(id, a.Value) case nil: err = s.Stmt.BindNull(id) default: @@ -565,7 +565,7 @@ func (s *stmt) CheckNamedValue(arg *driver.NamedValue) error { switch arg.Value.(type) { case bool, int, int64, float64, string, []byte, time.Time, sqlite3.ZeroBlob, - util.JSON, util.PointerUnwrap, + util.JSON, util.Pointer, nil: return nil default: diff --git a/internal/util/pointer.go b/internal/util/pointer.go index eae4dae..dbcfac3 100644 --- a/internal/util/pointer.go +++ b/internal/util/pointer.go @@ -1,11 +1,3 @@ package util -type Pointer[T any] struct{ Value T } - -func (p Pointer[T]) unwrap() any { return p.Value } - -type PointerUnwrap interface{ unwrap() any } - -func UnwrapPointer(p PointerUnwrap) any { - return p.unwrap() -} +type Pointer struct{ Value any } diff --git a/internal/util/pointer_test.go b/internal/util/pointer_test.go deleted file mode 100644 index 3a804f1..0000000 --- a/internal/util/pointer_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package util - -import ( - "math" - "testing" -) - -func TestUnwrapPointer(t *testing.T) { - p := Pointer[float64]{Value: math.Pi} - if got := UnwrapPointer(p); got != math.Pi { - t.Errorf("want π, got %v", got) - } -} diff --git a/pointer.go b/pointer.go index 0e2418b..245558f 100644 --- a/pointer.go +++ b/pointer.go @@ -8,6 +8,6 @@ import "github.com/ncruces/go-sqlite3/internal/util" // [Value.Pointer], or [Context.ResultPointer]. // // https://sqlite.org/bindptr.html -func Pointer[T any](value T) any { - return util.Pointer[T]{Value: value} +func Pointer(value any) any { + return util.Pointer{Value: value} }