use crossbeam_channel::{unbounded, Receiver, Sender};
use crate::event::ModificationEvent;
use crate::Identifier;
pub struct ModificationChannel<I: Identifier> {
event_receiver: Receiver<ModificationEvent<I>>,
event_sender: Sender<ModificationEvent<I>>,
}
impl<I: Identifier> ModificationChannel<I> {
pub fn new() -> ModificationChannel<I> {
let (tx, rx) = unbounded();
ModificationChannel {
event_receiver: rx,
event_sender: tx,
}
}
pub fn sender(&self) -> &Sender<ModificationEvent<I>> {
&self.event_sender
}
pub fn receiver(&self) -> &Receiver<ModificationEvent<I>> {
&self.event_receiver
}
}