naia_shared/messages/channels/
default_channels.rs

1use crate::{
2    messages::channels::channel::{
3        ChannelDirection, ChannelMode, ReliableSettings, TickBufferSettings,
4    },
5    Channel, Protocol, ProtocolPlugin,
6};
7
8#[derive(Channel)]
9pub struct UnorderedUnreliableChannel;
10#[derive(Channel)]
11pub struct SequencedUnreliableChannel;
12#[derive(Channel)]
13pub struct UnorderedReliableChannel;
14#[derive(Channel)]
15pub struct SequencedReliableChannel;
16#[derive(Channel)]
17pub struct OrderedReliableChannel;
18#[derive(Channel)]
19pub struct TickBufferedChannel;
20
21pub(crate) struct DefaultChannelsPlugin;
22impl ProtocolPlugin for DefaultChannelsPlugin {
23    fn build(&self, protocol: &mut Protocol) {
24        protocol
25            .add_channel::<UnorderedUnreliableChannel>(
26                ChannelDirection::Bidirectional,
27                ChannelMode::UnorderedUnreliable,
28            )
29            .add_channel::<SequencedUnreliableChannel>(
30                ChannelDirection::Bidirectional,
31                ChannelMode::SequencedUnreliable,
32            )
33            .add_channel::<UnorderedReliableChannel>(
34                ChannelDirection::Bidirectional,
35                ChannelMode::UnorderedReliable(ReliableSettings::default()),
36            )
37            .add_channel::<SequencedReliableChannel>(
38                ChannelDirection::Bidirectional,
39                ChannelMode::SequencedReliable(ReliableSettings::default()),
40            )
41            .add_channel::<OrderedReliableChannel>(
42                ChannelDirection::Bidirectional,
43                ChannelMode::OrderedReliable(ReliableSettings::default()),
44            )
45            .add_channel::<TickBufferedChannel>(
46                ChannelDirection::ClientToServer,
47                ChannelMode::TickBuffered(TickBufferSettings::default()),
48            );
49    }
50}