pub fn new_pair() -> (Self, AbortRegistration) {
        let inner =
            Arc::new(AbortInner { waker: AtomicWaker::new(), aborted: AtomicBool::new(false) });

        (Self { inner: inner.clone() }, AbortRegistration { inner })
    }
Creates an (`AbortHandle`, `AbortRegistration`) pair which can be used
to abort a running future or stream.

This function is usually paired with a call to [`Abortable::new`].
futures-util/src/abortable.rs