summaryrefslogtreecommitdiffstats
path: root/ipfs-api/examples/get_swarm.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-api/examples/get_swarm.rs')
-rw-r--r--ipfs-api/examples/get_swarm.rs54
1 files changed, 29 insertions, 25 deletions
diff --git a/ipfs-api/examples/get_swarm.rs b/ipfs-api/examples/get_swarm.rs
index 52e547a..2b9fd73 100644
--- a/ipfs-api/examples/get_swarm.rs
+++ b/ipfs-api/examples/get_swarm.rs
@@ -6,11 +6,12 @@
// copied, modified, or distributed except according to those terms.
//
+extern crate futures;
+extern crate hyper;
extern crate ipfs_api;
-extern crate tokio_core;
+use futures::Future;
use ipfs_api::IpfsClient;
-use tokio_core::reactor::Core;
// Creates an Ipfs client, and gets information about your local address, and
// connected peers.
@@ -18,30 +19,33 @@ use tokio_core::reactor::Core;
fn main() {
println!("connecting to localhost:5001...");
- let mut core = Core::new().expect("expected event loop");
- let client = IpfsClient::default(&core.handle());
+ let client = IpfsClient::default();
- let local = client.swarm_addrs_local();
- let local = core.run(local).expect("expected a valid response");
-
- println!();
- println!("your addrs:");
- for addr in local.strings {
- println!(" {}", addr);
- }
-
- let connected = client.swarm_peers();
- let connected = core.run(connected).expect("expected a valid response");
+ let local = client.swarm_addrs_local().map(|local| {
+ println!();
+ println!("your addrs:");
+ for addr in local.strings {
+ println!(" {}", addr);
+ }
+ });
- println!();
- println!("connected:");
- for peer in connected.peers {
- let streams: Vec<&str> = peer.streams.iter().map(|s| &s.protocol[..]).collect();
- println!(" addr: {}", peer.addr);
- println!(" peer: {}", peer.peer);
- println!(" latency: {}", peer.latency);
- println!(" muxer: {}", peer.muxer);
- println!(" streams: {}", streams.join(", "));
+ let connected = client.swarm_peers().map(|connected| {
println!();
- }
+ println!("connected:");
+ for peer in connected.peers {
+ let streams: Vec<&str> = peer.streams.iter().map(|s| &s.protocol[..]).collect();
+ println!(" addr: {}", peer.addr);
+ println!(" peer: {}", peer.peer);
+ println!(" latency: {}", peer.latency);
+ println!(" muxer: {}", peer.muxer);
+ println!(" streams: {}", streams.join(", "));
+ println!();
+ }
+ });
+
+ hyper::rt::run(
+ local
+ .and_then(|_| connected)
+ .map_err(|e| eprintln!("{}", e)),
+ );
}