MCPcopy
hub / github.com/IBM/sarama / encode

Function encode

encoder_decoder.go:21–46  ·  view source on GitHub ↗

Encode takes an Encoder and turns it into bytes while potentially recording metrics.

(e encoder, metricRegistry metrics.Registry)

Source from the content-addressed store, hash-verified

19
20// Encode takes an Encoder and turns it into bytes while potentially recording metrics.
21func encode(e encoder, metricRegistry metrics.Registry) ([]byte, error) {
22 if e == nil {
23 return nil, nil
24 }
25
26 var prepEnc prepEncoder
27 var realEnc realEncoder
28
29 err := e.encode(prepareFlexibleEncoder(&prepEnc, e))
30 if err != nil {
31 return nil, err
32 }
33
34 if prepEnc.length < 0 || prepEnc.length > int(MaxRequestSize) {
35 return nil, PacketEncodingError{fmt.Sprintf("invalid request size (%d)", prepEnc.length)}
36 }
37
38 realEnc.raw = make([]byte, prepEnc.length)
39 realEnc.registry = metricRegistry
40 err = e.encode(prepareFlexibleEncoder(&realEnc, e))
41 if err != nil {
42 return nil, err
43 }
44
45 return realEnc.raw, nil
46}
47
48// taggedFieldValue adapts an encode closure for encode(); tagged-field values
49// are always compact-encoded, so it reports itself as flexible

Calls 2

prepareFlexibleEncoderFunction · 0.85
encodeMethod · 0.65