pub fn retry_with_timeout<SLEEP, POL, F, Fut, T, E>(
    policy: POL,
    future_repeater: F,
    every_performance_timeout_dur: Duration
) -> Retry<SLEEP, POL, T, ErrorWrapper<E>> where
    SLEEP: Sleepble + 'static,
    POL: RetryPolicy<ErrorWrapper<E>>,
    F: Fn() -> Fut + Send + 'static,
    Fut: Future<Output = Result<T, E>> + Send + 'static,