prepEncoder.go 698 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package kafka
  2. import "math"
  3. type prepEncoder struct {
  4. length int
  5. err bool
  6. }
  7. func (pe *prepEncoder) putInt16(in int16) {
  8. pe.length += 2
  9. }
  10. func (pe *prepEncoder) putInt32(in int32) {
  11. pe.length += 4
  12. }
  13. func (pe *prepEncoder) putError(in kafkaError) {
  14. pe.length += 2
  15. }
  16. func (pe *prepEncoder) putString(in *string) {
  17. pe.length += 2
  18. if in == nil {
  19. return
  20. }
  21. if len(*in) > math.MaxInt16 {
  22. pe.err = true
  23. } else {
  24. pe.length += len(*in)
  25. }
  26. }
  27. func (pe *prepEncoder) putBytes(in *[]byte) {
  28. pe.length += 4
  29. if in == nil {
  30. return
  31. }
  32. if len(*in) > math.MaxInt32 {
  33. pe.err = true
  34. } else {
  35. pe.length += len(*in)
  36. }
  37. }
  38. func (pe *prepEncoder) putArrayCount(in int) {
  39. pe.length += 4
  40. }