25 lines
400 B
Gleam
25 lines
400 B
Gleam
import musicplayer/input/key.{type Key}
|
|
|
|
pub type Control {
|
|
TogglePlayPause
|
|
Search
|
|
|
|
Exit
|
|
}
|
|
|
|
pub fn from_key(key: Key) -> Result(Control, Nil) {
|
|
case key {
|
|
key.Char(char) -> char_control(char)
|
|
_ -> Error(Nil)
|
|
}
|
|
}
|
|
|
|
fn char_control(char: String) -> Result(Control, Nil) {
|
|
case char {
|
|
" " -> Ok(TogglePlayPause)
|
|
"/" -> Ok(Search)
|
|
"q" -> Ok(Exit)
|
|
_ -> Error(Nil)
|
|
}
|
|
}
|