[][src]Function bigml::wait::wait

pub async fn wait<'_, T, E, F, R>(
    options: &'_ WaitOptions,
    __arg1: F
) -> Result<T, E> where
    F: FnMut() -> R,
    R: Future<Output = WaitStatus<T, E>>,
    E: Display,
    Error: Into<E>, 

Call f repeatedly, wait for it to return WaitStatus::Finished, an error, or a timeout. Honors WaitOptions.

use bigml::wait::{wait, WaitOptions, WaitStatus};
use failure::Error;

let value = wait::<_, failure::Error, _, _>(&WaitOptions::default(), || {
    async { WaitStatus::Finished("my value") }
}).boxed().compat().wait().expect("an error occured while waiting");

assert_eq!(value, "my value");

If you return Ok(WaitStatus::Waiting) instead, this function will wait some number of seconds, and then try again.