func (l *themisLock) parse(r iohelper.ByteMultiReader) error { // read type var typ uint8 err := binary.Read(r, binary.BigEndian, &typ) if err != nil { return errors.Trace(err) } l.typ = hbase.Type(typ) // read ts var ts int64 err = binary.Read(r, binary.BigEndian, &ts) if err != nil { return errors.Trace(err) } l.ts = uint64(ts) // read client addr sz, err := binary.ReadUvarint(r) if err != nil { return errors.Trace(err) } addr := make([]byte, sz) r.Read(addr) l.clientAddr = string(addr) // read wall time var wallTs int64 err = binary.Read(r, binary.BigEndian, &wallTs) if err != nil { return errors.Trace(err) } l.wallTs = uint64(wallTs) return nil }