[−][src]Function runng::result::flatten_result
pub fn flatten_result<T, E, F>(result: Result<Result<T, E>, F>) -> Result<T, E> where
E: From<F>,
Flattens nested results. Primary use case is with channels:
use futures::channel::oneshot; use futures_util::future::FutureExt; // for map() // Wrapper to explicity show the types fn flatten<T>(input: T) -> impl futures::Future<Output = runng::Result<runng::msg::NngMsg>> where T: futures::Future<Output = Result<runng::Result<runng::msg::NngMsg>, oneshot::Canceled>>, { input.map(runng::flatten_result) } let (_, receiver) = oneshot::channel(); let receiver = flatten(receiver);