use flume::Sender;
use crate::{HookID, MemberID, MemberState, TickStateReply};
pub enum TickCommand {
Register(Sender<TickStateReply>, usize),
Unregister(HookID),
ChangeMemberState(MemberID, MemberState),
Shutdown,
}
#[derive(Debug, Clone)]
pub struct TickManagerHandle {
global_sender: Sender<TickCommand>,
}
impl TickManagerHandle {
pub fn new(global_sender: Sender<TickCommand>) -> Self {
TickManagerHandle { global_sender }
}
pub fn send(&self, command: TickCommand) -> Result<(), flume::SendError<TickCommand>> {
self.global_sender.send(command)
}
}