diff options
author | Blaž Hrastnik | 2021-11-18 02:08:47 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2021-11-18 02:09:04 +0000 |
commit | fa4c59df4623ac33c307c5637dcf74c83c71d763 (patch) | |
tree | f8f4a197641d5fd9fbbdaecd9281c37bb14bd23b /helix-term/src/compositor.rs | |
parent | 90fd09f2cc4e5dfa7380036b0748adf95ffdf371 (diff) |
Simplify compositor.find
Diffstat (limited to 'helix-term/src/compositor.rs')
-rw-r--r-- | helix-term/src/compositor.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/helix-term/src/compositor.rs b/helix-term/src/compositor.rs index dc8b91d7..3a644750 100644 --- a/helix-term/src/compositor.rs +++ b/helix-term/src/compositor.rs @@ -177,11 +177,12 @@ impl Compositor { .any(|component| component.type_name() == type_name) } - pub fn find(&mut self, type_name: &str) -> Option<&mut dyn Component> { + pub fn find<T: 'static>(&mut self) -> Option<&mut T> { + let type_name = std::any::type_name::<T>(); self.layers .iter_mut() .find(|component| component.type_name() == type_name) - .map(|component| component.as_mut()) + .and_then(|component| component.as_any_mut().downcast_mut()) } } |