generated from ElnuDev/rust-project
parent
31572568da
commit
79813a2549
@ -1,3 +1,4 @@
|
|||||||
/target
|
/target
|
||||||
.direnv
|
.direnv
|
||||||
output.svg
|
output.svg
|
||||||
|
layout.json
|
@ -1,70 +0,0 @@
|
|||||||
mod oyayubi;
|
|
||||||
pub use oyayubi::OYAYUBI;
|
|
||||||
|
|
||||||
use std::fmt::{Display, self};
|
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
|
||||||
pub enum Key<'a> {
|
|
||||||
Oyayubi {
|
|
||||||
latin: char,
|
|
||||||
normal: char,
|
|
||||||
shift: char,
|
|
||||||
alt_shift: Option<char>,
|
|
||||||
},
|
|
||||||
Single {
|
|
||||||
text: &'a str,
|
|
||||||
u: f64,
|
|
||||||
},
|
|
||||||
Icon {
|
|
||||||
icon_path: &'a str,
|
|
||||||
u: f64,
|
|
||||||
},
|
|
||||||
Break,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub const fn oyayubi<'a>(latin: char, normal: char, shift: char, alt_shift: Option<char>) -> Key<'a> {
|
|
||||||
Key::Oyayubi {
|
|
||||||
latin,
|
|
||||||
normal,
|
|
||||||
shift,
|
|
||||||
alt_shift,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub const fn single<'a>(text: &'a str, u: f64) -> Key<'a> {
|
|
||||||
Key::Single {
|
|
||||||
text,
|
|
||||||
u,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub const fn icon<'a>(icon_path: &'a str, u: f64) -> Key<'a> {
|
|
||||||
Key::Icon {
|
|
||||||
icon_path,
|
|
||||||
u,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> Key<'a> {
|
|
||||||
pub fn width_mod(&self) -> f64 {
|
|
||||||
use Key::*;
|
|
||||||
match self {
|
|
||||||
Oyayubi { .. } => 1.0,
|
|
||||||
Single { u, .. } => *u,
|
|
||||||
Icon { u, .. } => *u,
|
|
||||||
Break => 0.0,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> Display for Key<'a> {
|
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
||||||
use Key::*;
|
|
||||||
write!(f, "{}", match self {
|
|
||||||
Oyayubi { latin, .. } => latin.to_string(),
|
|
||||||
Single { text, .. } => text.to_string(),
|
|
||||||
Icon { icon_path, .. } => icon_path.to_string(),
|
|
||||||
Break => "".to_string(),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 4.0 KiB |
Loading…
Reference in new issue