use Future;
use Pin;
use ;
/// A wrapper to make future `Send`. It's used to wrap future returned by top middleware.
/// So the future returned by each middleware or endpoint can be `?Send`.
///
/// But how to ensure thread safety? Because the middleware and the context must be `Sync + Send`,
/// which means the only factor causing future `!Send` is the variables generated in `Future::poll`.
/// And these variable mustn't be accessed from other threads.
;
unsafe