You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
757 B
38 lines
757 B
package kafka
|
|
|
|
import "bufio"
|
|
|
|
func discardN(r *bufio.Reader, sz int, n int) (int, error) {
|
|
var err error
|
|
if n <= sz {
|
|
n, err = r.Discard(n)
|
|
} else {
|
|
n, err = r.Discard(sz)
|
|
if err == nil {
|
|
err = errShortRead
|
|
}
|
|
}
|
|
return sz - n, err
|
|
}
|
|
|
|
func discardInt32(r *bufio.Reader, sz int) (int, error) {
|
|
return discardN(r, sz, 4)
|
|
}
|
|
|
|
func discardString(r *bufio.Reader, sz int) (int, error) {
|
|
return readStringWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) {
|
|
if n < 0 {
|
|
return sz, nil
|
|
}
|
|
return discardN(r, sz, n)
|
|
})
|
|
}
|
|
|
|
func discardBytes(r *bufio.Reader, sz int) (int, error) {
|
|
return readBytesWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) {
|
|
if n < 0 {
|
|
return sz, nil
|
|
}
|
|
return discardN(r, sz, n)
|
|
})
|
|
}
|
|
|