pub async fn with_timeout<F>(duration: Duration, future: F) -> Result<F::Output>where F: Future,
Timeout executor - wraps a future with timeout