(buf []byte, r io.Reader)
| 238 | } |
| 239 | |
| 240 | func readFrameHeader(buf []byte, r io.Reader) (FrameHeader, error) { |
| 241 | _, err := io.ReadFull(r, buf[:frameHeaderLen]) |
| 242 | if err != nil { |
| 243 | return FrameHeader{}, err |
| 244 | } |
| 245 | return FrameHeader{ |
| 246 | Length: (uint32(buf[0])<<16 | uint32(buf[1])<<8 | uint32(buf[2])), |
| 247 | Type: FrameType(buf[3]), |
| 248 | Flags: Flags(buf[4]), |
| 249 | StreamID: binary.BigEndian.Uint32(buf[5:]) & (1<<31 - 1), |
| 250 | valid: true, |
| 251 | }, nil |
| 252 | } |
| 253 | |
| 254 | // A Frame is the base interface implemented by all frame types. |
| 255 | // Callers will generally type-assert the specific frame type: |
no test coverage detected
searching dependent graphs…