impl<A: Future> Future for Fuse<A> {
type Item = A::Item;
type Error = A::Error;
fn poll(&mut self) -> Poll<A::Item, A::Error> {
let res = self.future.as_mut().map(|f| f.poll());
match res.unwrap_or(Ok(Async::NotReady)) {
res @ Ok(Async::Ready(_)) |
res @ Err(_) => {
self.future = None;
res
}
Ok(Async::NotReady) => Ok(Async::NotReady)
}
}
}
what does "@" here use for?