use crate::keyboard::KeyboardKeys;
use serde::{Serialize, Serializer};
impl Serialize for KeyboardKeys {
fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
serializer.serialize_str(&self.to_string())
}
}
#[cfg(test)]
mod tests {
use crate::keyboard::{KeyboardKey, KeyboardKeys};
use serde_test::{assert_ser_tokens, Token};
#[test]
fn test_keyboard_keys_serialize() {
let keys1 = KeyboardKeys::new().add_key(KeyboardKey::L);
let keys2 = KeyboardKeys::new()
.add_key(KeyboardKey::RightShift)
.add_key(KeyboardKey::H);
let keys3 = KeyboardKeys::new()
.add_key(KeyboardKey::H)
.add_key(KeyboardKey::E)
.add_key(KeyboardKey::L);
assert_ser_tokens(&keys1, &[Token::String("l")]);
assert_ser_tokens(&keys2, &[Token::String("right-shift+h")]);
assert_ser_tokens(&keys3, &[Token::String("h+e+l")]);
}
}