use serde::{Deserialize, Serialize};
use serde_json::Value;
use bytestring::ByteString;
#[derive(Serialize, Deserialize, Debug)]
pub struct Input {
pub id: Option<String>,
pub action: Action,
pub data: Option<Value>,
}
#[rustfmt::skip]
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, PartialEq, Eq, strum_macros::EnumString)]
pub enum Action {
Subscribe,
Unsubscribe,
Autorization,
Talk, History, HistoryTalk, PostLocation, }
impl From<Input> for ByteString {
fn from(val: Input) -> Self {
let json_string = serde_json::to_string(&val).unwrap();
let byte_string: ByteString = ByteString::from(json_string);
byte_string
}
}