use serde::{Deserialize, Serialize};
use crate::encode::ShouldCompress;
use crate::{ClientMessage, PeerId};
#[derive(Debug, Serialize, Deserialize)]
pub enum ServerMessage {
PeerJoined(PeerId),
PeerLeft(PeerId),
Relayed(ClientMessage),
SessionStateRequest {
requested_by: PeerId,
},
}
impl ShouldCompress for ServerMessage {
#[inline]
fn should_compress(&self) -> bool {
match self {
Self::Relayed(client_msg) => client_msg.should_compress(),
_ => false,
}
}
}
impl AsRef<ServerMessage> for ServerMessage {
#[inline]
fn as_ref(&self) -> &Self {
self
}
}