pub async fn with_retry_on_error_and_none<F, Fut, O, E>( f: F, retry_on_error: bool, retry_on_none: bool, ) -> Result<Option<O>, E>where F: Fn() -> Fut, Fut: Future<Output = Result<Option<O>, E>>, E: Debug,