refactor(rt): replace spawn and run with wrapped functions
This commit is contained in:
		
							
								
								
									
										46
									
								
								src/rt.rs
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								src/rt.rs
									
									
									
									
									
								
							| @@ -8,4 +8,48 @@ | |||||||
|  |  | ||||||
| pub use futures::{Future, Stream}; | pub use futures::{Future, Stream}; | ||||||
| pub use futures::future::{lazy, poll_fn}; | pub use futures::future::{lazy, poll_fn}; | ||||||
| pub use tokio::{run, spawn}; | use tokio; | ||||||
|  |  | ||||||
|  | use self::inner::Spawn; | ||||||
|  |  | ||||||
|  | /// Spawns a future on the default executor. | ||||||
|  | /// | ||||||
|  | /// # Panics | ||||||
|  | /// | ||||||
|  | /// This function will panic if the default executor is not set. | ||||||
|  | /// | ||||||
|  | /// # Note | ||||||
|  | /// | ||||||
|  | /// The `Spawn` return type is not currently meant for anything other than | ||||||
|  | /// to reserve adding new trait implementations to it later. It can be | ||||||
|  | /// ignored for now. | ||||||
|  | pub fn spawn<F>(f: F) -> Spawn | ||||||
|  | where | ||||||
|  |     F: Future<Item=(), Error=()> + Send + 'static, | ||||||
|  | { | ||||||
|  |     tokio::spawn(f); | ||||||
|  |     Spawn { | ||||||
|  |         _inner: (), | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /// Start the Tokio runtime using the supplied future to bootstrap execution. | ||||||
|  | /// | ||||||
|  | /// # Example | ||||||
|  | /// | ||||||
|  | /// See the [server documentation](::server) for an example of its usage. | ||||||
|  | pub fn run<F>(f: F) | ||||||
|  | where | ||||||
|  |     F: Future<Item=(), Error=()> + Send + 'static | ||||||
|  | { | ||||||
|  |     tokio::run(f); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Make the `Spawn` type an unnameable, so we can add | ||||||
|  | // methods or trait impls to it later without a breaking change. | ||||||
|  | mod inner { | ||||||
|  |     #[allow(missing_debug_implementations)] | ||||||
|  |     pub struct Spawn { | ||||||
|  |         pub(super) _inner: (), | ||||||
|  |     } | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user