fn interleave_pending_write(self) -> InterleavePending<Self>
    where
        Self: Sized,
    {
        InterleavePending::new(self)
    }
Introduces an extra [`Poll::Pending`](futures_core::task::Poll::Pending)
in between each operation on the writer.

# Examples

```
use core::pin::pin;

use futures::task::Poll;
use futures::io::{AsyncWrite, Cursor};
use futures_test::task::noop_context;
use futures_test::io::AsyncWriteTestExt;

let writer = Cursor::new(vec![0u8; 4].into_boxed_slice()).interleave_pending_write();
let mut writer = pin!(writer);

let mut cx = noop_context();

assert_eq!(writer.as_mut().poll_write(&mut cx, &[1, 2])?, Poll::Pending);
assert_eq!(writer.as_mut().poll_write(&mut cx, &[1, 2])?, Poll::Ready(2));
assert_eq!(&writer.get_ref().get_ref()[..], [1, 2, 0, 0]);
assert_eq!(writer.as_mut().poll_write(&mut cx, &[3, 4])?, Poll::Pending);
assert_eq!(writer.as_mut().poll_write(&mut cx, &[3, 4])?, Poll::Ready(2));
assert_eq!(&writer.get_ref().get_ref()[..], [1, 2, 3, 4]);
assert_eq!(writer.as_mut().poll_write(&mut cx, &[5, 6])?, Poll::Pending);
assert_eq!(writer.as_mut().poll_write(&mut cx, &[5, 6])?, Poll::Ready(0));

assert_eq!(writer.as_mut().poll_flush(&mut cx)?, Poll::Pending);
assert_eq!(writer.as_mut().poll_flush(&mut cx)?, Poll::Ready(()));

assert_eq!(writer.as_mut().poll_close(&mut cx)?, Poll::Pending);
assert_eq!(writer.as_mut().poll_close(&mut cx)?, Poll::Ready(()));

# Ok::<(), std::io::Error>(())
```
futures-test/src/io/write/mod.rs