use core::fmt::{self, Display, Formatter};
use bevy::prelude::*;
#[derive(Reflect, Debug, Hash, PartialEq, Eq, Ord, PartialOrd, Clone, Copy)]
pub enum ClientId {
Client(Entity),
Server,
}
impl ClientId {
pub fn entity(self) -> Option<Entity> {
match self {
ClientId::Client(entity) => Some(entity),
ClientId::Server => None,
}
}
}
impl From<Entity> for ClientId {
fn from(value: Entity) -> Self {
Self::Client(value)
}
}
impl Display for ClientId {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
match self {
ClientId::Client(entity) => entity.fmt(f),
ClientId::Server => write!(f, "Server"),
}
}
}