| #![warn( |
| missing_debug_implementations, |
| missing_docs, |
| rust_2018_idioms, |
| unreachable_pub |
| )] |
| #![cfg_attr(docsrs, deny(broken_intra_doc_links))] |
| #![doc(test( |
| no_crate_inject, |
| attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables)) |
| ))] |
| |
| //! Tokio and Futures based testing utilites |
| |
| pub mod io; |
| |
| mod macros; |
| pub mod task; |
| |
| /// Runs the provided future, blocking the current thread until the |
| /// future completes. |
| /// |
| /// For more information, see the documentation for |
| /// [`tokio::runtime::Runtime::block_on`][runtime-block-on]. |
| /// |
| /// [runtime-block-on]: https://docs.rs/tokio/1.3.0/tokio/runtime/struct.Runtime.html#method.block_on |
| pub fn block_on<F: std::future::Future>(future: F) -> F::Output { |
| use tokio::runtime; |
| |
| let rt = runtime::Builder::new_current_thread() |
| .enable_all() |
| .build() |
| .unwrap(); |
| |
| rt.block_on(future) |
| } |