github.com/qiniu/go-sdk/v7@v7.27.0/internal/io/io.go (about) 1 package io 2 3 import ( 4 "bytes" 5 "io" 6 "strings" 7 ) 8 9 func ReadAll(r io.Reader) ([]byte, error) { 10 switch b := r.(type) { 11 case *BytesNopCloser: 12 _, err := b.Seek(0, io.SeekEnd) 13 return b.Bytes(), err 14 default: 15 return io.ReadAll(r) 16 } 17 } 18 19 func SinkAll(r io.Reader) (err error) { 20 switch b := r.(type) { 21 case *BytesNopCloser: 22 _, err = b.Seek(0, io.SeekEnd) 23 case *bytes.Buffer: 24 b.Truncate(0) 25 case *bytes.Reader: 26 _, err = b.Seek(0, io.SeekEnd) 27 case *strings.Reader: 28 _, err = b.Seek(0, io.SeekEnd) 29 default: 30 _, err = io.Copy(io.Discard, r) 31 } 32 return 33 }