/**
  * Parses the key turning it into a string (or array is required) suitable to be passed to the cache store.
  *
  * @param string|int $key As passed to get|set|delete etc.
  * @return string|array String unless the store supports multi-identifiers in which case an array if returned.
  */
 protected function parse_key($key)
 {
     // First up if the store supports multiple keys we'll go with that.
     if ($this->store->supports_multiple_identifiers()) {
         $result = $this->definition->generate_multi_key_parts();
         $result['key'] = $key;
         return $result;
     }
     // If not we need to generate a hash and to for that we use the cache_helper.
     return cache_helper::hash_key($key, $this->definition);
 }