Hello!
I am a newbee.
I am trying to write loop future.
The code is
let packet_sender = future::loop_fn(kbucket_c.next(), move |peer| {
if peer == None {
return Ok(future::Loop::Break(peer));
}
// here, peer is not None
let peer = peer.unwrap();
let mut server = server_obj_c_c.borrow_mut();
server.send_ping_req(peer)
.and_then(|()| Ok(future::Loop::Continue(kbucket_c.next())))
.or_else(|_| Ok(future::Loop::Break(kbucket_c.next())))
})
.map(|_| ());
handle.spawn(packet_sender);
function named send_ping_req() returns IoFuture<()> type.
when it compiles
the error msg is
130 | / server.send_ping_req(peer)
131 | | .and_then(|()| Ok(future::Continue(kbucket_c.next())))
132 | | .or_else(|_| Ok(future::Break(kbucket_c.next())))
| |_______________________________________________________________________^ expected enum std::result::Result
, found struct futures::OrElse
|
= note: expected type std::result::Result<_, _>
found type `futures::OrElse<futures::AndThen<std::boxed::Box<futures::Future<Error=std::io::Error, Item=()> + std::marker::Send>,
.......
thanks in advance!!!