discard.go 757 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package kafka
  2. import "bufio"
  3. func discardN(r *bufio.Reader, sz int, n int) (int, error) {
  4. var err error
  5. if n <= sz {
  6. n, err = r.Discard(n)
  7. } else {
  8. n, err = r.Discard(sz)
  9. if err == nil {
  10. err = errShortRead
  11. }
  12. }
  13. return sz - n, err
  14. }
  15. func discardInt32(r *bufio.Reader, sz int) (int, error) {
  16. return discardN(r, sz, 4)
  17. }
  18. func discardString(r *bufio.Reader, sz int) (int, error) {
  19. return readStringWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) {
  20. if n < 0 {
  21. return sz, nil
  22. }
  23. return discardN(r, sz, n)
  24. })
  25. }
  26. func discardBytes(r *bufio.Reader, sz int) (int, error) {
  27. return readBytesWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) {
  28. if n < 0 {
  29. return sz, nil
  30. }
  31. return discardN(r, sz, n)
  32. })
  33. }