MCPcopy Create free account
hub / github.com/segmentio/encoding / ReadMessage

Method ReadMessage

thrift/binary.go:114–147  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

112}
113
114func (r *binaryReader) ReadMessage() (Message, error) {
115 m := Message{}
116
117 b, err := r.read(4)
118 if len(b) < 4 {
119 return m, err
120 }
121
122 if (b[0] >> 7) == 0 { // non-strict
123 n := int(binary.BigEndian.Uint32(b))
124 s := make([]byte, n)
125 _, err := io.ReadFull(r.r, s)
126 if err != nil {
127 return m, dontExpectEOF(err)
128 }
129 m.Name = unsafeBytesToString(s)
130
131 t, err := r.ReadInt8()
132 if err != nil {
133 return m, dontExpectEOF(err)
134 }
135
136 m.Type = MessageType(t & 0x7)
137 } else {
138 m.Type = MessageType(b[3] & 0x7)
139
140 if m.Name, err = r.ReadString(); err != nil {
141 return m, dontExpectEOF(err)
142 }
143 }
144
145 m.SeqID, err = r.ReadInt32()
146 return m, err
147}
148
149func (r *binaryReader) ReadField() (Field, error) {
150 t, err := r.ReadInt8()

Callers

nothing calls this directly

Calls 8

readMethod · 0.95
ReadInt8Method · 0.95
ReadStringMethod · 0.95
ReadInt32Method · 0.95
dontExpectEOFFunction · 0.85
unsafeBytesToStringFunction · 0.85
MessageTypeTypeAlias · 0.85
Uint32Method · 0.80

Tested by

no test coverage detected