1pub mod async_plugin;
2pub mod client;
3pub mod common;
4pub mod server;
5
6use bevy::app::{PluginGroup, PluginGroupBuilder};
7
8use crate::{
9 async_plugin::QuicAsyncPlugin,
10 client::acceptor::SimpleClientAcceptorPlugin,
11 common::{
12 connection::plugin::ConnectionAttemptPlugin,
13 plugin::DisconnectHandlerPlugin,
14 stream::{
15 plugin::StreamAttemptPlugin,
16 session::{QuicAeronetEventPlugin, QuicAeronetPacketPlugin},
17 },
18 },
19 server::acceptor::SimpleServerAcceptorPlugin,
20};
21
22pub struct QuicDefaultPlugins;
25
26impl PluginGroup for QuicDefaultPlugins {
27 fn build(self) -> bevy::app::PluginGroupBuilder {
28 PluginGroupBuilder::start::<Self>()
29 .add(QuicAsyncPlugin::default())
30 .add(ConnectionAttemptPlugin)
31 .add(StreamAttemptPlugin)
32 .add(SimpleServerAcceptorPlugin)
33 .add(SimpleClientAcceptorPlugin)
34 .add(DisconnectHandlerPlugin)
35 }
36}
37
38pub struct QuicAeronetPlugins;
40
41impl PluginGroup for QuicAeronetPlugins {
42 fn build(self) -> bevy::app::PluginGroupBuilder {
43 PluginGroupBuilder::start::<Self>()
44 .add(QuicAeronetPacketPlugin)
45 .add(QuicAeronetEventPlugin)
46 }
47}