connexa/
lib.rs

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}