use actix::Message as ActixMessage;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use bytestring::ByteString;
#[derive(Serialize, Deserialize)]
pub enum Action {
Subscribe,
Unsubscribe,
SendMessage, }
#[derive(Serialize, Deserialize, ActixMessage)]
#[rtype(result = "()")]
pub struct Input {
pub id: Option<String>,
pub action: Action,
pub data: Value,
}
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
}
}