Documentation
¶
Overview ¶
The `types` package is reference from :
https://jackieli.dev/posts/pointers-in-go-used-in-sql-scanner/
This package is a helper library to prevent the value being fallback using reflection in `database/sql`.
Index ¶
- func BinaryMarshaler[T interface{ ... }](addr T) driver.Valuer
- func BinaryUnmarshaler[T any, Ptr interface{ ... }](addr Ptr) sql.Scanner
- func BoolSlice[T ~bool](v *[]T) boolList[T]
- func ConvertBool[T ~bool](v T) driver.Value
- func ConvertBytes[T ~[]byte](v T) driver.Value
- func ConvertFloat[T constraints.Float](v T) driver.Value
- func ConvertInt[T constraints.Integer](v T) driver.Value
- func ConvertString[T interface{ ... }](v T) driver.Value
- func FixedSizeBytes[T ~byte](v []T, size int) *byteArray[T]
- func FixedSizeRunes[T ~rune](v []T, size int) *runeArray[T]
- func Float32Slice[T constraints.Float](v *[]T) floatList[T]
- func Float64Slice[T constraints.Float](v *[]T) floatList[T]
- func IntSlice[T constraints.Signed](v *[]T) intList[T]
- func JSONMarshaler[T any](addr T) driver.Valuer
- func JSONUnmarshaler[T any, Ptr interface{ ... }](addr Ptr) sql.Scanner
- func StringSlice[T ~string](v *[]T) strSlice[T]
- func TextMarshaler[T interface{ ... }](addr T) driver.Valuer
- func TextUnmarshaler[T any, Ptr interface{ ... }](addr Ptr) sql.Scanner
- func UintSlice[T constraints.Unsigned](v *[]T) uintList[T]
- type StringLikeType
- type ValueScanner
- func Bool[T ~bool](addr *T, strict ...bool) ValueScanner[T]
- func Float32[T ~float32](addr *T, strict ...bool) ValueScanner[T]
- func Float64[T ~float64](addr *T, strict ...bool) ValueScanner[T]
- func Int16[T ~int16](addr *T, strict ...bool) ValueScanner[T]
- func Int32[T ~int32](addr *T, strict ...bool) ValueScanner[T]
- func Int64[T ~int64](addr *T, strict ...bool) ValueScanner[T]
- func Int8[T ~int8](addr *T, strict ...bool) ValueScanner[T]
- func Integer[T constraints.Integer](addr *T, strict ...bool) ValueScanner[T]
- func String[T StringLikeType](addr *T, strict ...bool) ValueScanner[T]
- func Time[T time.Time](addr *T, strict ...bool) ValueScanner[T]
- func Uint[T ~uint](addr *T, strict ...bool) ValueScanner[T]
- func Uint16[T ~uint16](addr *T, strict ...bool) ValueScanner[T]
- func Uint32[T ~uint32](addr *T, strict ...bool) ValueScanner[T]
- func Uint64[T ~uint64](addr *T, strict ...bool) ValueScanner[T]
- func Uint8[T ~uint8](addr *T, strict ...bool) ValueScanner[T]
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BinaryMarshaler ¶
func BinaryMarshaler[T interface { encoding.BinaryMarshaler }](addr T) driver.Valuer
func BinaryUnmarshaler ¶
func BinaryUnmarshaler[T any, Ptr interface { *T encoding.BinaryUnmarshaler }](addr Ptr) sql.Scanner
func ConvertBool ¶
func ConvertBytes ¶
func ConvertFloat ¶
func ConvertFloat[T constraints.Float](v T) driver.Value
func ConvertInt ¶
func ConvertInt[T constraints.Integer](v T) driver.Value
func FixedSizeBytes ¶
func FixedSizeRunes ¶
func Float32Slice ¶
func Float32Slice[T constraints.Float](v *[]T) floatList[T]
func Float64Slice ¶
func Float64Slice[T constraints.Float](v *[]T) floatList[T]
func IntSlice ¶
func IntSlice[T constraints.Signed](v *[]T) intList[T]
func JSONMarshaler ¶
func JSONUnmarshaler ¶
func StringSlice ¶
func StringSlice[T ~string](v *[]T) strSlice[T]
func TextMarshaler ¶
func TextMarshaler[T interface { encoding.TextMarshaler }](addr T) driver.Valuer
func TextUnmarshaler ¶
func TextUnmarshaler[T any, Ptr interface { *T encoding.TextUnmarshaler }](addr Ptr) sql.Scanner
func UintSlice ¶
func UintSlice[T constraints.Unsigned](v *[]T) uintList[T]
Types ¶
type StringLikeType ¶
type ValueScanner ¶
func Float32 ¶
func Float32[T ~float32](addr *T, strict ...bool) ValueScanner[T]
Float returns a sql.Scanner
func Float64 ¶
func Float64[T ~float64](addr *T, strict ...bool) ValueScanner[T]
Float returns a sql.Scanner
func Int16 ¶
func Int16[T ~int16](addr *T, strict ...bool) ValueScanner[T]
func Int32 ¶
func Int32[T ~int32](addr *T, strict ...bool) ValueScanner[T]
func Int64 ¶
func Int64[T ~int64](addr *T, strict ...bool) ValueScanner[T]
func Int8 ¶
func Int8[T ~int8](addr *T, strict ...bool) ValueScanner[T]
func Integer ¶
func Integer[T constraints.Integer](addr *T, strict ...bool) ValueScanner[T]
func String ¶
func String[T StringLikeType](addr *T, strict ...bool) ValueScanner[T]
func Uint ¶
func Uint[T ~uint](addr *T, strict ...bool) ValueScanner[T]
func Uint16 ¶
func Uint16[T ~uint16](addr *T, strict ...bool) ValueScanner[T]
func Uint32 ¶
func Uint32[T ~uint32](addr *T, strict ...bool) ValueScanner[T]
func Uint64 ¶
func Uint64[T ~uint64](addr *T, strict ...bool) ValueScanner[T]
func Uint8 ¶
func Uint8[T ~uint8](addr *T, strict ...bool) ValueScanner[T]
Source Files
¶
Click to show internal directories.
Click to hide internal directories.