code: func (w *DeleteRangeWALEntry) UnmarshalBinary(b []byte) error {
  	if len(b) < 16 {
  		return ErrWALCorrupt
  	}
  
  	w.Min = int64(binary.BigEndian.Uint64(b[:8]))
  	w.Max = int64(binary.BigEndian.Uint64(b[8:16]))
  
  	i := 16
  	for i < len(b) {
  		if i+4 > len(b) {
  			return ErrWALCorrupt
  		}
  		sz := int(binary.BigEndian.Uint32(b[i : i+4]))
  		i += 4
  
  		if i+sz > len(b) {
  			return ErrWALCorrupt
  		}
  
  		// b originates from a pool. Copy what needs to be retained.
  		buf := make([]byte, sz)
  		copy(buf, b[i:i+sz])
  		w.Keys = append(w.Keys, buf)
  		i += sz
  	}
  	return nil
  }
docs: // UnmarshalBinary deserializes the byte slice into w.