github.com/jackc/pgx/v5@v5.5.5/pgtype/zeronull/text.go (about) 1 package zeronull 2 3 import ( 4 "database/sql/driver" 5 6 "github.com/jackc/pgx/v5/pgtype" 7 ) 8 9 type Text string 10 11 func (Text) SkipUnderlyingTypePlan() {} 12 13 // ScanText implements the TextScanner interface. 14 func (dst *Text) ScanText(v pgtype.Text) error { 15 if !v.Valid { 16 *dst = "" 17 return nil 18 } 19 20 *dst = Text(v.String) 21 22 return nil 23 } 24 25 // Scan implements the database/sql Scanner interface. 26 func (dst *Text) Scan(src any) error { 27 if src == nil { 28 *dst = "" 29 return nil 30 } 31 32 var nullable pgtype.Text 33 err := nullable.Scan(src) 34 if err != nil { 35 return err 36 } 37 38 *dst = Text(nullable.String) 39 40 return nil 41 } 42 43 // Value implements the database/sql/driver Valuer interface. 44 func (src Text) Value() (driver.Value, error) { 45 if src == "" { 46 return nil, nil 47 } 48 return string(src), nil 49 }