Sha256: 98668a8c8feae0f85714df1dfecfcd94fba4ba347bdc3d8aaa4ea8b175055c69
Contents?: true
Size: 1.31 KB
Versions: 38
Compression:
Stored size: 1.31 KB
Contents
#![warn(rust_2018_idioms)] #![cfg(feature = "full")] use tokio::io::{AsyncWrite, AsyncWriteExt}; use tokio_test::assert_ok; use bytes::BytesMut; use std::io; use std::pin::Pin; use std::task::{Context, Poll}; #[tokio::test] async fn write() { struct Wr { buf: BytesMut, cnt: usize, } impl AsyncWrite for Wr { fn poll_write( mut self: Pin<&mut Self>, _cx: &mut Context<'_>, buf: &[u8], ) -> Poll<io::Result<usize>> { assert_eq!(self.cnt, 0); self.buf.extend(&buf[0..4]); Ok(4).into() } fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<io::Result<()>> { Ok(()).into() } fn poll_shutdown(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<io::Result<()>> { Ok(()).into() } } let mut wr = Wr { buf: BytesMut::with_capacity(64), cnt: 0, }; let n = assert_ok!(wr.write(b"hello world").await); assert_eq!(n, 4); assert_eq!(wr.buf, b"hell"[..]); } #[tokio::test] async fn write_cursor() { use std::io::Cursor; let mut wr = Cursor::new(Vec::new()); let n = assert_ok!(wr.write(b"hello world").await); assert_eq!(n, 11); assert_eq!(wr.get_ref().as_slice(), &b"hello world"[..]); }
Version data entries
38 entries across 38 versions & 1 rubygems