[−][src]Trait tokio::io::AsyncSeek
Seek bytes asynchronously.
This trait is analogous to the std::io::Seek
trait, but integrates
with the asynchronous task system. In particular, the start_seek
method, unlike Seek::seek
, will not block the calling thread.
Utilities for working with AsyncSeek
values are provided by
AsyncSeekExt
.
Required methods
fn start_seek(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
position: SeekFrom
) -> Poll<Result<()>>
self: Pin<&mut Self>,
cx: &mut Context<'_>,
position: SeekFrom
) -> Poll<Result<()>>
Attempts to seek to an offset, in bytes, in a stream.
A seek beyond the end of a stream is allowed, but behavior is defined by the implementation.
If this function returns successfully, then the job has been submitted.
To find out when it completes, call poll_complete
.
fn poll_complete(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
Waits for a seek operation to complete.
If the seek operation completed successfully,
this method returns the new position from the start of the stream.
That position can be used later with [SeekFrom::Start
].
Errors
Seeking to a negative offset is considered an error.
Panics
Calling this method without calling start_seek
first is an error.
Implementations on Foreign Types
impl<T: ?Sized + AsyncSeek + Unpin> AsyncSeek for Box<T>
[src]
fn start_seek(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>
fn poll_complete(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
impl<T: ?Sized + AsyncSeek + Unpin, '_> AsyncSeek for &'_ mut T
[src]
fn start_seek(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>
fn poll_complete(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
impl<P> AsyncSeek for Pin<P> where
P: DerefMut + Unpin,
P::Target: AsyncSeek,
[src]
P: DerefMut + Unpin,
P::Target: AsyncSeek,
fn start_seek(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>
fn poll_complete(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64>>
impl<T: AsRef<[u8]> + Unpin> AsyncSeek for Cursor<T>
[src]
fn start_seek(
self: Pin<&mut Self>,
_: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>
[src]
self: Pin<&mut Self>,
_: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<()>>