#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use alloc::string::String;
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum CompositionState {
Start,
Update,
End,
}
impl CompositionState {
pub const fn event_type(self) -> &'static str {
match self {
Self::Start => "compositionstart",
Self::Update => "compositionupdate",
Self::End => "compositionend",
}
}
}
#[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct CompositionEvent {
pub state: CompositionState,
pub data: String,
}