Skip to content
Snippets Groups Projects
mod.rs 740 B
Newer Older
use remote_events::events::{FromSocketMessage, ToSocketMessage};
use serde::{Deserialize, Serialize};

#[derive(Clone, Copy, Debug, Default, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum IncomingEvent {
	#[default]
	Void,
}

impl FromSocketMessage for IncomingEvent {
	fn from_text(value: String) -> Self {
		serde_json::from_str(value.as_str()).unwrap_or_default()
	}

	fn from_binary(value: Vec<u8>) -> Self {
		serde_json::from_slice(value.as_slice()).unwrap_or_default()
	}
}

#[derive(Clone, Copy, Debug, Default, Serialize, Deserialize)]
pub enum OutgoingEvent {
	#[default]
	Void,
}

impl ToSocketMessage for OutgoingEvent {
	fn to_text(&self) -> String {
		serde_json::to_string(&self).unwrap_or(String::from("{}"))
	}
}