2
0

TextCodec specifically supports scanning to BytesScanner

This lets it support DriverBytes and PreallocatedBytes.
This commit is contained in:
Jack Christensen
2022-02-26 20:28:15 -06:00
parent ffc5a692cb
commit a8f6674a07
+9
View File
@@ -165,6 +165,8 @@ func (TextCodec) PlanScan(m *Map, oid uint32, format int16, target interface{})
return scanPlanTextAnyToString{} return scanPlanTextAnyToString{}
case *[]byte: case *[]byte:
return scanPlanAnyToNewByteSlice{} return scanPlanAnyToNewByteSlice{}
case BytesScanner:
return scanPlanAnyToByteScanner{}
case TextScanner: case TextScanner:
return scanPlanTextAnyToTextScanner{} return scanPlanTextAnyToTextScanner{}
case *rune: case *rune:
@@ -214,6 +216,13 @@ func (scanPlanAnyToNewByteSlice) Scan(src []byte, dst interface{}) error {
return nil return nil
} }
type scanPlanAnyToByteScanner struct{}
func (scanPlanAnyToByteScanner) Scan(src []byte, dst interface{}) error {
p := (dst).(BytesScanner)
return p.ScanBytes(src)
}
type scanPlanTextAnyToRune struct{} type scanPlanTextAnyToRune struct{}
func (scanPlanTextAnyToRune) Scan(src []byte, dst interface{}) error { func (scanPlanTextAnyToRune) Scan(src []byte, dst interface{}) error {