diff --git a/crates/egui/src/cache/cache_storage.rs b/crates/egui/src/cache/cache_storage.rs index 26e7d04ba..e0aa65e8c 100644 --- a/crates/egui/src/cache/cache_storage.rs +++ b/crates/egui/src/cache/cache_storage.rs @@ -19,7 +19,7 @@ use super::CacheTrait; /// /// # let mut cache_storage = CacheStorage::default(); /// let mut cache = cache_storage.cache::>(); -/// assert_eq!(cache.get("hello"), 5); +/// assert_eq!(*cache.get("hello"), 5); /// ``` #[derive(Default)] pub struct CacheStorage { diff --git a/crates/egui/src/cache/frame_cache.rs b/crates/egui/src/cache/frame_cache.rs index 4c8d25f3e..ae39712c7 100644 --- a/crates/egui/src/cache/frame_cache.rs +++ b/crates/egui/src/cache/frame_cache.rs @@ -46,10 +46,9 @@ impl FrameCache { impl FrameCache { /// Get from cache (if the same key was used last frame) /// or recompute and store in the cache. - pub fn get(&mut self, key: Key) -> Value + pub fn get(&mut self, key: Key) -> &Value where Key: Copy + std::hash::Hash, - Value: Clone, Computer: ComputerMut, { let hash = crate::util::hash(key); @@ -58,12 +57,12 @@ impl FrameCache { std::collections::hash_map::Entry::Occupied(entry) => { let cached = entry.into_mut(); cached.0 = self.generation; - cached.1.clone() + &cached.1 } std::collections::hash_map::Entry::Vacant(entry) => { let value = self.computer.compute(key); - entry.insert((self.generation, value.clone())); - value + let inserted = entry.insert((self.generation, value)); + &inserted.1 } } } diff --git a/crates/egui/src/memory/mod.rs b/crates/egui/src/memory/mod.rs index defb14a39..9c91c1322 100644 --- a/crates/egui/src/memory/mod.rs +++ b/crates/egui/src/memory/mod.rs @@ -68,7 +68,7 @@ pub struct Memory { /// # let mut ctx = egui::Context::default(); /// ctx.memory_mut(|mem| { /// let cache = mem.caches.cache::>(); - /// assert_eq!(cache.get("hello"), 5); + /// assert_eq!(*cache.get("hello"), 5); /// }); /// ``` #[cfg_attr(feature = "persistence", serde(skip))] diff --git a/crates/egui_extras/src/syntax_highlighting.rs b/crates/egui_extras/src/syntax_highlighting.rs index 5f41db9c8..adf2c9221 100644 --- a/crates/egui_extras/src/syntax_highlighting.rs +++ b/crates/egui_extras/src/syntax_highlighting.rs @@ -116,6 +116,7 @@ fn highlight_inner( mem.caches .cache::() .get((&font_id, theme, code, language, settings)) + .clone() }) }