code: func (c *Cache) deserializeItem(blob []byte) (item *itemWithExp, err error) {
  	if len(blob) < 9 {
  		err = fmt.Errorf("the received buffer is too small")
  		return
  	}
  	if blob[0] != formatVersionByte {
  		err = fmt.Errorf("bad format version, expecting %d, got %d", formatVersionByte, blob[0])
  		return
  	}
  	item = &itemWithExp{}
  	deadline := binary.LittleEndian.Uint64(blob[1:])
  	if deadline != 0 {
  		item.exp = time.Unix(int64(deadline), 0)
  	}
  	item.val, err = c.Unmarshal(blob[9:])
  	return
  }
docs: // deserializeItem is reverse of serializeItem.