use std::future;
use std::task::{Context, Poll, Waker};
use tracing::Span;
pub async fn span_across_await(span: Span) {
let _entered = span.enter();
yield_once().await;
}
async fn yield_once() {
let mut yielded = false;
future::poll_fn(|_| {
if yielded {
Poll::Ready(())
} else {
yielded = true;
Poll::Pending
}
})
.await;
}
pub fn noop_context() -> Context<'static> {
Context::from_waker(Waker::noop())
}