Skip to content

Commit 38f6536

Browse files
committed
factor out mods label code
1 parent d6dd905 commit 38f6536

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

src/page.rs

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::fl;
22
use crate::picker::{LAYERS, SCANCODE_LABELS};
3-
use backend::{Key, Keycode};
3+
use backend::{Key, Keycode, Mods};
44

55
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
66
pub enum Page {
@@ -91,14 +91,7 @@ fn keycode_label(keycode: &Keycode) -> Option<Vec<String>> {
9191
if mods.is_empty() {
9292
Some(vec![SCANCODE_LABELS.get(keycode)?.clone()])
9393
} else {
94-
let mut label = String::new();
95-
for name in mods.mod_names() {
96-
let mod_label = SCANCODE_LABELS.get(name)?;
97-
if !label.is_empty() {
98-
label.push_str(" + ");
99-
}
100-
label.push_str(mod_label);
101-
}
94+
let mut label = mods_label(*mods);
10295
if keycode != "NONE" {
10396
let keycode_label = SCANCODE_LABELS.get(keycode)?;
10497
label.push_str(" + ");
@@ -108,14 +101,7 @@ fn keycode_label(keycode: &Keycode) -> Option<Vec<String>> {
108101
}
109102
}
110103
Keycode::MT(mods, keycode) => {
111-
let mut mods_label = String::new();
112-
for name in mods.mod_names() {
113-
let mod_label = SCANCODE_LABELS.get(name)?;
114-
if !mods_label.is_empty() {
115-
mods_label.push_str(" + ");
116-
}
117-
mods_label.push_str(mod_label);
118-
}
104+
let mods_label = mods_label(*mods);
119105
let keycode_label = SCANCODE_LABELS.get(keycode)?.clone();
120106
Some(vec![mods_label, keycode_label])
121107
}
@@ -127,3 +113,15 @@ fn keycode_label(keycode: &Keycode) -> Option<Vec<String>> {
127113
}
128114
}
129115
}
116+
117+
fn mods_label(mods: Mods) -> String {
118+
let mut label = String::new();
119+
for name in mods.mod_names() {
120+
let mod_label = SCANCODE_LABELS.get(name).map_or("", String::as_str);
121+
if !label.is_empty() {
122+
label.push_str(" + ");
123+
}
124+
label.push_str(mod_label);
125+
}
126+
label
127+
}

0 commit comments

Comments
 (0)