1pub mod behaviour;
2pub mod builder;
3pub mod error;
4pub mod handle;
5pub mod task;
6pub(crate) mod types;
7
8use crate::behaviour::BehaviourEvent;
9use crate::prelude::{Swarm, SwarmEvent};
10use libp2p::swarm::NetworkBehaviour;
11use std::task::{Context, Poll};
12
13pub(crate) type TTaskCallback<C, X, T> =
14 Box<dyn Fn(&mut Swarm<behaviour::Behaviour<C>>, &mut X, T) + 'static + Send>;
15pub(crate) type TEventCallback<C, X> = Box<
16 dyn Fn(&mut Swarm<behaviour::Behaviour<C>>, &mut X, <C as NetworkBehaviour>::ToSwarm)
17 + 'static
18 + Send,
19>;
20pub(crate) type TPollableCallback<C, X> = Box<
21 dyn Fn(&mut Context, &mut Swarm<behaviour::Behaviour<C>>, &mut X) -> Poll<()> + 'static + Send,
22>;
23pub(crate) type TSwarmEventCallback<C> =
24 Box<dyn Fn(&SwarmEvent<BehaviourEvent<C>>) + 'static + Send>;
25
26pub mod dummy {
27 pub use crate::behaviour::dummy::{Behaviour, DummyHandler};
28}
29
30pub mod prelude {
31 use crate::builder::ConnexaBuilder;
32 pub use crate::types::*;
33 pub use libp2p::{
34 Multiaddr, PeerId, StreamProtocol, identity::*, multiaddr::Protocol, swarm::*,
35 };
36
37 #[cfg(feature = "kad")]
38 pub mod dht {
39 pub use libp2p::kad::*;
40 }
41
42 pub mod transport {
43 pub use libp2p::core::muxing;
44 pub use libp2p::core::transport;
45 pub use libp2p::core::upgrade;
46 pub use libp2p::noise;
47 pub use libp2p::yamux;
48 }
49
50 pub type DefaultConnexaBuilder = ConnexaBuilder<(), super::dummy::Behaviour, ()>;
51}