func (t *SizedMessage) Unmarshal(r *wipro.Reader) { t.Size = r.ReadInt32() start := r.Offset t.CRCMessage.Unmarshal(r) if r.Err == nil && int(t.Size) != r.Offset-start { r.Err = ErrSizeMismatch } }
func (t *RequestOrResponse) Unmarshal(r *wipro.Reader) { t.Size = r.ReadInt32() start := r.Offset t.M.Unmarshal(r) if r.Err == nil && int(t.Size) != r.Offset-start { r.Err = ErrSizeMismatch } }
func (t *CRCMessage) Unmarshal(r *wipro.Reader) { t.CRC = r.ReadUint32() start := r.Offset t.Message.Unmarshal(r) if r.Err == nil && t.CRC != crc32.ChecksumIEEE(r.B[start:r.Offset]) { r.Err = ErrCRCMismatch } }
func (t *MessageSet) Unmarshal(r *wipro.Reader) { size := int(r.ReadInt32()) start := r.Offset for r.Offset-start < size { var m OffsetMessage m.Unmarshal(r) if r.Err != nil { r.Err = nil r.Offset = len(r.B) return } *t = append(*t, m) } }