pub fn boxed_sync<'a, F>(fut: F) -> BoxSyncFuture<'a, F::Output>where F: Future + Sized + Send + Sync + 'a,
yoinked from futures crate, adds sync bound that we need