mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-23 14:40:30 +01:00
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
|
package sqldb
|
||
|
|
||
|
import (
|
||
|
"database/sql"
|
||
|
"time"
|
||
|
|
||
|
"golang.org/x/exp/constraints"
|
||
|
)
|
||
|
|
||
|
// sqlInt32 turns a numerical integer type into the NullInt32 that sql/sqlc
|
||
|
// uses when an integer field can be permitted to be NULL.
|
||
|
//
|
||
|
// We use this constraints.Integer constraint here which maps to all signed and
|
||
|
// unsigned integer types.
|
||
|
func sqlInt32[T constraints.Integer](num T) sql.NullInt32 {
|
||
|
return sql.NullInt32{
|
||
|
Int32: int32(num),
|
||
|
Valid: true,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// sqlInt64 turns a numerical integer type into the NullInt64 that sql/sqlc
|
||
|
// uses when an integer field can be permitted to be NULL.
|
||
|
//
|
||
|
// We use this constraints.Integer constraint here which maps to all signed and
|
||
|
// unsigned integer types.
|
||
|
func sqlInt64[T constraints.Integer](num T) sql.NullInt64 {
|
||
|
return sql.NullInt64{
|
||
|
Int64: int64(num),
|
||
|
Valid: true,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// sqlStr turns a string into the NullString that sql/sqlc uses when a string
|
||
|
// can be permitted to be NULL.
|
||
|
func sqlStr(s string) sql.NullString {
|
||
|
if s == "" {
|
||
|
return sql.NullString{}
|
||
|
}
|
||
|
|
||
|
return sql.NullString{
|
||
|
String: s,
|
||
|
Valid: true,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// sqlTime turns a time.Time into the NullTime that sql/sqlc uses when a time
|
||
|
// can be permitted to be NULL.
|
||
|
func sqlTime(t time.Time) sql.NullTime {
|
||
|
return sql.NullTime{
|
||
|
Time: t,
|
||
|
Valid: true,
|
||
|
}
|
||
|
}
|