summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaiki Endo <te316e89@gmail.com>2020-09-19 20:40:37 +0900
committerGitHub <noreply@github.com>2020-09-19 20:40:37 +0900
commitba8680d66773677f201a26b756e41e9a16b458fe (patch)
tree6e49b058e3ba4ee48df6f7dc8b6812d2ba177008
parent111894fef9cbd5c87b3e3508d0d983e1aedfe397 (diff)
io: fix doc-cfg on AsyncSeekExt (#2846)
-rw-r--r--tokio/src/io/seek.rs14
-rw-r--r--tokio/src/io/util/async_seek_ext.rs102
2 files changed, 60 insertions, 56 deletions
diff --git a/tokio/src/io/seek.rs b/tokio/src/io/seek.rs
index e3b5bf6b..8f071167 100644
--- a/tokio/src/io/seek.rs
+++ b/tokio/src/io/seek.rs
@@ -4,12 +4,14 @@ use std::io::{self, SeekFrom};
use std::pin::Pin;
use std::task::{Context, Poll};
-/// Future for the [`seek`](crate::io::AsyncSeekExt::seek) method.
-#[derive(Debug)]
-#[must_use = "futures do nothing unless you `.await` or poll them"]
-pub struct Seek<'a, S: ?Sized> {
- seek: &'a mut S,
- pos: Option<SeekFrom>,
+cfg_io_util! {
+ /// Future for the [`seek`](crate::io::AsyncSeekExt::seek) method.
+ #[derive(Debug)]
+ #[must_use = "futures do nothing unless you `.await` or poll them"]
+ pub struct Seek<'a, S: ?Sized> {
+ seek: &'a mut S,
+ pos: Option<SeekFrom>,
+ }
}
pub(crate) fn seek<S>(seek: &mut S, pos: SeekFrom) -> Seek<'_, S>
diff --git a/tokio/src/io/util/async_seek_ext.rs b/tokio/src/io/util/async_seek_ext.rs
index c7a0f72f..35bc94ee 100644
--- a/tokio/src/io/util/async_seek_ext.rs
+++ b/tokio/src/io/util/async_seek_ext.rs
@@ -2,65 +2,67 @@ use crate::io::seek::{seek, Seek};
use crate::io::AsyncSeek;
use std::io::SeekFrom;
-/// An extension trait which adds utility methods to [`AsyncSeek`] types.
-///
-/// As a convenience, this trait may be imported using the [`prelude`]:
-///
-/// # Examples
-///
-/// ```
-/// use std::io::{Cursor, SeekFrom};
-/// use tokio::prelude::*;
-///
-/// #[tokio::main]
-/// async fn main() -> io::Result<()> {
-/// let mut cursor = Cursor::new(b"abcdefg");
-///
-/// // the `seek` method is defined by this trait
-/// cursor.seek(SeekFrom::Start(3)).await?;
-///
-/// let mut buf = [0; 1];
-/// let n = cursor.read(&mut buf).await?;
-/// assert_eq!(n, 1);
-/// assert_eq!(buf, [b'd']);
-///
-/// Ok(())
-/// }
-/// ```
-///
-/// See [module][crate::io] documentation for more details.
-///
-/// [`AsyncSeek`]: AsyncSeek
-/// [`prelude`]: crate::prelude
-pub trait AsyncSeekExt: AsyncSeek {
- /// Creates a future which will seek an IO object, and then yield the
- /// new position in the object and the object itself.
+cfg_io_util! {
+ /// An extension trait which adds utility methods to [`AsyncSeek`] types.
///
- /// In the case of an error the buffer and the object will be discarded, with
- /// the error yielded.
+ /// As a convenience, this trait may be imported using the [`prelude`]:
///
/// # Examples
///
- /// ```no_run
- /// use tokio::fs::File;
+ /// ```
+ /// use std::io::{Cursor, SeekFrom};
/// use tokio::prelude::*;
///
- /// use std::io::SeekFrom;
+ /// #[tokio::main]
+ /// async fn main() -> io::Result<()> {
+ /// let mut cursor = Cursor::new(b"abcdefg");
+ ///
+ /// // the `seek` method is defined by this trait
+ /// cursor.seek(SeekFrom::Start(3)).await?;
///
- /// # async fn dox() -> std::io::Result<()> {
- /// let mut file = File::open("foo.txt").await?;
- /// file.seek(SeekFrom::Start(6)).await?;
+ /// let mut buf = [0; 1];
+ /// let n = cursor.read(&mut buf).await?;
+ /// assert_eq!(n, 1);
+ /// assert_eq!(buf, [b'd']);
///
- /// let mut contents = vec![0u8; 10];
- /// file.read_exact(&mut contents).await?;
- /// # Ok(())
- /// # }
+ /// Ok(())
+ /// }
/// ```
- fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>
- where
- Self: Unpin,
- {
- seek(self, pos)
+ ///
+ /// See [module][crate::io] documentation for more details.
+ ///
+ /// [`AsyncSeek`]: AsyncSeek
+ /// [`prelude`]: crate::prelude
+ pub trait AsyncSeekExt: AsyncSeek {
+ /// Creates a future which will seek an IO object, and then yield the
+ /// new position in the object and the object itself.
+ ///
+ /// In the case of an error the buffer and the object will be discarded, with
+ /// the error yielded.
+ ///
+ /// # Examples
+ ///
+ /// ```no_run
+ /// use tokio::fs::File;
+ /// use tokio::prelude::*;
+ ///
+ /// use std::io::SeekFrom;
+ ///
+ /// # async fn dox() -> std::io::Result<()> {
+ /// let mut file = File::open("foo.txt").await?;
+ /// file.seek(SeekFrom::Start(6)).await?;
+ ///
+ /// let mut contents = vec![0u8; 10];
+ /// file.read_exact(&mut contents).await?;
+ /// # Ok(())
+ /// # }
+ /// ```
+ fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>
+ where
+ Self: Unpin,
+ {
+ seek(self, pos)
+ }
}
}