use actix::Message as ActixMessage;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use bytestring::ByteString;
#[derive(Serialize, Deserialize)]
pub enum InputMessageType {
Msg,
Subscribe,
}
#[derive(Serialize, Deserialize, ActixMessage)]
#[rtype(result = "()")]
pub struct InputMessage {
pub ty: InputMessageType,
pub data: Value,
}
impl From<InputMessage> for ByteString {
fn from(val: InputMessage) -> Self {
let json_string = serde_json::to_string(&val).unwrap();
let byte_string: ByteString = ByteString::from(json_string);
byte_string
}
}