summaryrefslogtreecommitdiffstats
path: root/ipfs-api/examples/bootstrap_default.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-api/examples/bootstrap_default.rs')
-rw-r--r--ipfs-api/examples/bootstrap_default.rs76
1 files changed, 42 insertions, 34 deletions
diff --git a/ipfs-api/examples/bootstrap_default.rs b/ipfs-api/examples/bootstrap_default.rs
index d236716..79c66ab 100644
--- a/ipfs-api/examples/bootstrap_default.rs
+++ b/ipfs-api/examples/bootstrap_default.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 ipfs_api::IpfsClient;
-use tokio_core::reactor::Core;
+use futures::Future;
// Lists clients in bootstrap list, then adds the default list, then removes
// them, and readds them.
@@ -18,36 +19,43 @@ 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 bootstrap = client.bootstrap_list();
- let bootstrap = core.run(bootstrap).expect("expected a valid response");
-
- println!("current bootstrap peers:");
- for peer in bootstrap.peers {
- println!(" {}", peer);
- }
-
- println!();
- println!("dropping all bootstrap peers...");
-
- let drop = client.bootstrap_rm_all();
- let drop = core.run(drop).expect("expected a valid response");
-
- println!("dropped:");
- for peer in drop.peers {
- println!(" {}", peer);
- }
-
- println!();
- println!("adding default peers...");
-
- let add = client.bootstrap_add_default();
- let add = core.run(add).expect("expected a valid response");
-
- println!("added:");
- for peer in add.peers {
- println!(" {}", peer);
- }
+ let client = IpfsClient::default();
+
+ let bootstrap = client.bootstrap_list().map(|bootstrap| {
+ println!("current bootstrap peers:");
+ for peer in bootstrap.peers {
+ println!(" {}", peer);
+ }
+ });
+
+ let drop = client.bootstrap_rm_all().map(|drop| {
+ println!("dropped:");
+ for peer in drop.peers {
+ println!(" {}", peer);
+ }
+ });
+
+ let add = client.bootstrap_add_default().map(|add| {
+ println!("added:");
+ for peer in add.peers {
+ println!(" {}", peer);
+ }
+ });
+
+ hyper::rt::run(
+ bootstrap
+ .and_then(|_| {
+ println!();
+ println!("dropping all bootstrap peers...");
+
+ drop
+ })
+ .and_then(|_| {
+ println!();
+ println!("adding default peers...");
+
+ add
+ })
+ .map_err(|e| eprintln!("{}", e)),
+ );
}