pub async fn interruptible_sendable<T, E: From<InterruptError>>( rx: Receiver<()>, f: impl Future<Output = Result<T, E>> + Send + Unpin) -> Result<T, E>