use std::fmt;
#[derive(Debug)]
pub struct Membership {
pub(crate) socket_ref: u32,
pub(crate) node_ref: u32,
pub(crate) service_address: u32,
pub(crate) service_instance: u32,
pub(crate) joined: bool,
}
impl Membership {
pub fn socket_ref(&self) -> u32 {
self.socket_ref
}
pub fn node_ref(&self) -> u32 {
self.node_ref
}
pub fn service_type(&self) -> u32 {
self.service_address
}
pub fn service_instance(&self) -> u32 {
self.service_instance
}
pub fn joined(&self) -> bool {
self.joined
}
}
impl fmt::Display for Membership {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"{}:{}@{}:{}",
self.service_address, self.service_instance, self.socket_ref, self.node_ref
)
}
}
#[derive(Debug)]
pub enum GroupMessage {
MemberEvent(Membership),
DataEvent(Vec<u8>),
}