1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#![feature(vec_drain_as_slice)] use std::net::SocketAddr; mod config; mod network_bridge; pub mod actor; pub mod crypto; pub mod p2p; pub mod primitives; pub mod rpc; pub mod storage; pub mod traits; use actor::prelude::{Actor, Addr, System, SystemRunner}; use crypto::keypair::PrivateKey; use p2p::p2p_start; use rpc::rpc_start; use traits::actor::BridgeActor; pub use config::Configure; pub use network_bridge::NetworkBridgeActor; pub fn system_init() -> SystemRunner { System::new("Teatree") } pub fn system_run(runner: SystemRunner) { let _ = runner.run(); } pub fn network_start<A: BridgeActor>( p2p_socket: SocketAddr, rpc_socket: SocketAddr, psk: Option<PrivateKey>, ) -> Addr<NetworkBridgeActor<A>> { let p2p_addr = p2p_start::<NetworkBridgeActor<A>>(p2p_socket, psk); let rpc_addr = rpc_start::<NetworkBridgeActor<A>>(rpc_socket); NetworkBridgeActor::create(|ctx| { ctx.set_mailbox_capacity(100); NetworkBridgeActor::load(p2p_addr, rpc_addr) }) }