use serde::{Deserialize, Deserializer, Serialize, Serializer};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum InteractionType {
Ping = 1,
ApplicationCommand = 2,
HttpProxy = 10,
InlineKeyboard = 11,
}
wire_enum_with_default!(InteractionType, u8, Ping, {
Ping = 1,
ApplicationCommand = 2,
HttpProxy = 10,
InlineKeyboard = 11,
});
impl Serialize for InteractionType {
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_u8(*self as u8)
}
}
impl<'de> Deserialize<'de> for InteractionType {
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(Self::from(u8::deserialize(deserializer)?))
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum InteractionDataType {
ChatInputSearch = 9,
HttpProxy = 10,
InlineKeyboardButtonClick = 11,
CallbackCommandClick = 12,
MessageFeedbackClick = 13,
ClearSessionClick = 14,
}
wire_enum_with_default!(InteractionDataType, u8, ChatInputSearch, {
ChatInputSearch = 9,
HttpProxy = 10,
InlineKeyboardButtonClick = 11,
CallbackCommandClick = 12,
MessageFeedbackClick = 13,
ClearSessionClick = 14,
});
impl Serialize for InteractionDataType {
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_u8(*self as u8)
}
}
impl<'de> Deserialize<'de> for InteractionDataType {
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(Self::from(u8::deserialize(deserializer)?))
}
}