github.com/hack0072008/kafka-go@v1.0.1/discard.go (about) 1 package kafka 2 3 import "bufio" 4 5 func discardN(r *bufio.Reader, sz int, n int) (int, error) { 6 var err error 7 if n <= sz { 8 n, err = r.Discard(n) 9 } else { 10 n, err = r.Discard(sz) 11 if err == nil { 12 err = errShortRead 13 } 14 } 15 return sz - n, err 16 } 17 18 func discardInt8(r *bufio.Reader, sz int) (int, error) { 19 return discardN(r, sz, 1) 20 } 21 22 func discardInt16(r *bufio.Reader, sz int) (int, error) { 23 return discardN(r, sz, 2) 24 } 25 26 func discardInt32(r *bufio.Reader, sz int) (int, error) { 27 return discardN(r, sz, 4) 28 } 29 30 func discardInt64(r *bufio.Reader, sz int) (int, error) { 31 return discardN(r, sz, 8) 32 } 33 34 func discardString(r *bufio.Reader, sz int) (int, error) { 35 return readStringWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) { 36 if n < 0 { 37 return sz, nil 38 } 39 return discardN(r, sz, n) 40 }) 41 } 42 43 func discardBytes(r *bufio.Reader, sz int) (int, error) { 44 return readBytesWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) { 45 if n < 0 { 46 return sz, nil 47 } 48 return discardN(r, sz, n) 49 }) 50 }