INNER CODE UNIT · Rust
keys_for_action
bgreenwell/doxx · src/keymap/mod.rs:32
pub fn keys_for_action(&self, action: Action) -> Vec<String> {
let mut bindings: Vec<&KeyBinding> = self
.bindings
.iter()
.filter(|(_, a)| **a == action)
.map(|(k, _)| k)
.collect();
bindings.sort_by_key(|k| (k.sort_priority(), k.display()));
bindings.iter().map(|k| k.display()).collect()
}
/// Returns the single "best" key string for `action` (first after sorting).
pub fn primary_key_for_action(&self, action: Action) -> String {
self.keys_for_action(action)
.into_iter()
.next()
.unwrap_or_else(|| "(unbound)".to_string())
}