github.com/jackc/pgx/v5@v5.5.5/pgtype/zeronull/int.go (about) 1 // Do not edit. Generated from pgtype/zeronull/int.go.erb 2 package zeronull 3 4 import ( 5 "database/sql/driver" 6 "fmt" 7 "math" 8 9 "github.com/jackc/pgx/v5/pgtype" 10 ) 11 12 type Int2 int16 13 14 func (Int2) SkipUnderlyingTypePlan() {} 15 16 // ScanInt64 implements the Int64Scanner interface. 17 func (dst *Int2) ScanInt64(n int64, valid bool) error { 18 if !valid { 19 *dst = 0 20 return nil 21 } 22 23 if n < math.MinInt16 { 24 return fmt.Errorf("%d is greater than maximum value for Int2", n) 25 } 26 if n > math.MaxInt16 { 27 return fmt.Errorf("%d is greater than maximum value for Int2", n) 28 } 29 *dst = Int2(n) 30 31 return nil 32 } 33 34 // Scan implements the database/sql Scanner interface. 35 func (dst *Int2) Scan(src any) error { 36 if src == nil { 37 *dst = 0 38 return nil 39 } 40 41 var nullable pgtype.Int2 42 err := nullable.Scan(src) 43 if err != nil { 44 return err 45 } 46 47 *dst = Int2(nullable.Int16) 48 49 return nil 50 } 51 52 // Value implements the database/sql/driver Valuer interface. 53 func (src Int2) Value() (driver.Value, error) { 54 if src == 0 { 55 return nil, nil 56 } 57 return int64(src), nil 58 } 59 60 type Int4 int32 61 62 func (Int4) SkipUnderlyingTypePlan() {} 63 64 // ScanInt64 implements the Int64Scanner interface. 65 func (dst *Int4) ScanInt64(n int64, valid bool) error { 66 if !valid { 67 *dst = 0 68 return nil 69 } 70 71 if n < math.MinInt32 { 72 return fmt.Errorf("%d is greater than maximum value for Int4", n) 73 } 74 if n > math.MaxInt32 { 75 return fmt.Errorf("%d is greater than maximum value for Int4", n) 76 } 77 *dst = Int4(n) 78 79 return nil 80 } 81 82 // Scan implements the database/sql Scanner interface. 83 func (dst *Int4) Scan(src any) error { 84 if src == nil { 85 *dst = 0 86 return nil 87 } 88 89 var nullable pgtype.Int4 90 err := nullable.Scan(src) 91 if err != nil { 92 return err 93 } 94 95 *dst = Int4(nullable.Int32) 96 97 return nil 98 } 99 100 // Value implements the database/sql/driver Valuer interface. 101 func (src Int4) Value() (driver.Value, error) { 102 if src == 0 { 103 return nil, nil 104 } 105 return int64(src), nil 106 } 107 108 type Int8 int64 109 110 func (Int8) SkipUnderlyingTypePlan() {} 111 112 // ScanInt64 implements the Int64Scanner interface. 113 func (dst *Int8) ScanInt64(n int64, valid bool) error { 114 if !valid { 115 *dst = 0 116 return nil 117 } 118 119 if n < math.MinInt64 { 120 return fmt.Errorf("%d is greater than maximum value for Int8", n) 121 } 122 if n > math.MaxInt64 { 123 return fmt.Errorf("%d is greater than maximum value for Int8", n) 124 } 125 *dst = Int8(n) 126 127 return nil 128 } 129 130 // Scan implements the database/sql Scanner interface. 131 func (dst *Int8) Scan(src any) error { 132 if src == nil { 133 *dst = 0 134 return nil 135 } 136 137 var nullable pgtype.Int8 138 err := nullable.Scan(src) 139 if err != nil { 140 return err 141 } 142 143 *dst = Int8(nullable.Int64) 144 145 return nil 146 } 147 148 // Value implements the database/sql/driver Valuer interface. 149 func (src Int8) Value() (driver.Value, error) { 150 if src == 0 { 151 return nil, nil 152 } 153 return int64(src), nil 154 }