diff options
Diffstat (limited to 'ipfs-api/examples/bootstrap_default.rs')
-rw-r--r-- | ipfs-api/examples/bootstrap_default.rs | 76 |
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)), + ); } |