message: [crispy] LRUCache: Extending API with some helpful member functions.
diff: @@ -43,6 +43,11 @@ public:
  items_.clear();
  }
  + void touch(Key _key) noexcept
  + {
  + (void) try_get(_key);
  + }
  +
  [[nodiscard]] bool contains(Key _key) const noexcept
  {
  return try_get(_key) != nullptr;
  @@ -76,6 +81,14 @@ public:
  throw std::out_of_range("_key");
  }
  + [[nodiscard]] Value const& at(Key _key) const
  + {
  + if (Value const* p = try_get(_key))
  + return *p;
  +
  + throw std::out_of_range("_key");
  + }
  +
  /// Returns the value for the given key, default-constructing it in case
  /// if it wasn't in the cache just yet.
  [[nodiscard]] Value& operator[](Key _key)
  @@ -160,6 +173,18 @@ public:
  return result;
  }
  + void erase(iterator _iter)
  + {
  + items_.erase(_iter);
  + itemByKeyMapping_.erase(_iter->first);
  + }
  +
  + void erase(Key const& _key)
  + {
  + if (auto i = itemByKeyMapping_.find(_key); i != itemByKeyMapping_.end())
  + erase(i->second);
  + }
  +
  private:
  std::list<Item> items_;
  std::unordered_map<Key, typename std::list<Item>::iterator> lookupMap_;
  