#![no_std]
extern crate alloc;
extern crate core;
use bevy_app::{App, Plugin};
use bevy_ecs::schedule::SystemSet;
pub mod client;
pub mod server;
pub mod direction;
pub mod network_target;
pub mod client_of;
#[allow(unused)]
pub mod identity;
pub mod shared;
pub mod host;
pub mod network_topology;
pub mod p2p;
#[deprecated(note = "Use ConnectionSystems instead")]
pub type ConnectionSet = ConnectionSystems;
#[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone, Copy)]
pub enum ConnectionSystems {
Receive,
Send,
}
pub mod prelude {
pub use crate::ConnectionSystems;
pub use crate::direction::NetworkDirection;
pub use crate::identity::{is_client, is_p2p};
pub use crate::network_target::NetworkTarget;
pub use crate::network_topology::{
NetworkTopology, NetworkTopologyError, NetworkTopologySystems, NetworkingMetadata,
};
pub use crate::client::{
Client, ClientState, Connect, Connected, Connecting, ConnectionError, Disconnect,
Disconnected, DisconnectedReason, PeerMetadata,
};
pub use crate::p2p::P2P;
#[cfg(feature = "client")]
pub mod client {
pub use crate::client::{
Client, ClientState, Connect, Connected, Connecting, ConnectionError, Disconnect,
Disconnected, DisconnectedReason,
};
}
#[cfg(feature = "server")]
pub mod server {
pub use crate::client_of::ClientOf;
pub use crate::identity::{is_headless_server, is_host_server, is_server};
pub use crate::server::{ConnectionError, Start, Started, Starting, Stop, Stopped};
}
}
pub struct ConnectionPlugin;
impl Plugin for ConnectionPlugin {
fn build(&self, app: &mut App) {
app.add_plugins(network_topology::NetworkTopologyPlugin);
}
}