code: func deserializeAddrIndexEntry(serialized []byte, region *database.BlockRegion, fetchBlockHash fetchBlockHashFunc) error {
  	// Ensure there are enough bytes to decode.
  	if len(serialized) < txEntrySize {
  		return errDeserialize("unexpected end of data")
  	}
  
  	hash, err := fetchBlockHash(serialized[0:4])
  	if err != nil {
  		return err
  	}
  	region.Hash = hash
  	region.Offset = byteOrder.Uint32(serialized[4:8])
  	region.Len = byteOrder.Uint32(serialized[8:12])
  	return nil
  }
docs: // deserializeAddrIndexEntry decodes the passed serialized byte slice into the
  // provided region struct according to the format described in detail above and
  // uses the passed block hash fetching function in order to conver the block ID
  // to the associated block hash.