types

package
v1.0.0-alpha.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2024 License: MIT Imports: 15 Imported by: 34

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

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 BoolSlice

func BoolSlice[T ~bool](v *[]T) boolList[T]

func ConvertBool

func ConvertBool[T ~bool](v T) driver.Value

func ConvertBytes

func ConvertBytes[T ~[]byte](v T) driver.Value

func ConvertFloat

func ConvertFloat[T constraints.Float](v T) driver.Value

func ConvertInt

func ConvertInt[T constraints.Integer](v T) driver.Value

func ConvertString

func ConvertString[T interface {
	~string | ~[]byte
}](v T) driver.Value

func FixedSizeBytes

func FixedSizeBytes[T ~byte](v []T, size int) *byteArray[T]

func FixedSizeRunes

func FixedSizeRunes[T ~rune](v []T, size int) *runeArray[T]

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 JSONMarshaler[T any](addr T) driver.Valuer

func JSONUnmarshaler

func JSONUnmarshaler[T any, Ptr interface {
	*T
}](addr Ptr) sql.Scanner

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 StringLikeType interface {
	~string | ~[]byte
}

type ValueScanner

type ValueScanner[T any] interface {
	driver.Valuer
	sql.Scanner
	Interface() T
}

func Bool

func Bool[T ~bool](addr *T, strict ...bool) ValueScanner[T]

Bool returns a sql.Scanner

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 Time

func Time[T time.Time](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]

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL