Gets a value from the cache, returning `None` if not present.
(&self, key: &K)
| 114 | |
| 115 | /// Gets a value from the cache, returning `None` if not present. |
| 116 | pub async fn get(&self, key: &K) -> Option<V> { |
| 117 | let value = self.cache.get(key).await; |
| 118 | if value.is_some() { |
| 119 | self.metrics.record_hit(); |
| 120 | if let Some(name) = &self.hits_metric_name { |
| 121 | metrics::counter!( |
| 122 | Arc::clone(name), |
| 123 | "cache_name" => Arc::clone(&self.name), |
| 124 | ) |
| 125 | .increment(1); |
| 126 | } |
| 127 | } else { |
| 128 | self.metrics.record_miss(); |
| 129 | if let Some(name) = &self.misses_metric_name { |
| 130 | metrics::counter!( |
| 131 | Arc::clone(name), |
| 132 | "cache_name" => Arc::clone(&self.name), |
| 133 | ) |
| 134 | .increment(1); |
| 135 | } |
| 136 | } |
| 137 | value |
| 138 | } |
| 139 | |
| 140 | /// Inserts a value into the cache. |
| 141 | pub async fn insert(&self, key: K, value: V) { |