TextCodec specifically supports scanning to BytesScanner
This lets it support DriverBytes and PreallocatedBytes.
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user