use naia_serde::{BitReader, SerdeErr};
use crate::{
messages::{message_container::MessageContainer, message_kinds::MessageKinds},
world::remote::entity_waitlist::EntityWaitlist,
LocalEntityAndGlobalEntityConverter,
};
pub trait ChannelReceiver<P>: Send + Sync {
fn receive_messages(
&mut self,
entity_waitlist: &mut EntityWaitlist,
converter: &dyn LocalEntityAndGlobalEntityConverter,
) -> Vec<P>;
}
pub trait MessageChannelReceiver: ChannelReceiver<MessageContainer> {
fn read_messages(
&mut self,
message_kinds: &MessageKinds,
entity_waitlist: &mut EntityWaitlist,
converter: &dyn LocalEntityAndGlobalEntityConverter,
reader: &mut BitReader,
) -> Result<(), SerdeErr>;
}