Trait hyper_static_server::tokio::io::AsyncSeek [−][src]
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
pub fn start_seek(self: Pin<&mut Self>, position: SeekFrom) -> Result<(), Error>
[src]
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
.
Errors
This function can return io::ErrorKind::Other
in case there is
another seek in progress. To avoid this, it is advisable that any call
to start_seek
is preceded by a call to poll_complete
to ensure all
pending seeks have completed.
pub fn poll_complete(
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
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
. Repeatedly
calling this function without calling start_seek
might return the
same result.
Errors
Seeking to a negative offset is considered an error.
Implementations on Foreign Types
impl<P> AsyncSeek for Pin<P> where
P: DerefMut + Unpin,
<P as Deref>::Target: AsyncSeek,
[src]
P: DerefMut + Unpin,
<P as Deref>::Target: AsyncSeek,
pub fn start_seek(self: Pin<&mut Pin<P>>, pos: SeekFrom) -> Result<(), Error>
[src]
pub fn poll_complete(
self: Pin<&mut Pin<P>>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
[src]
self: Pin<&mut Pin<P>>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
impl<T> AsyncSeek for Box<T, Global> where
T: AsyncSeek + Unpin + ?Sized,
[src]
T: AsyncSeek + Unpin + ?Sized,
pub fn start_seek(
self: Pin<&mut Box<T, Global>>,
pos: SeekFrom
) -> Result<(), Error>
[src]
self: Pin<&mut Box<T, Global>>,
pos: SeekFrom
) -> Result<(), Error>
pub fn poll_complete(
self: Pin<&mut Box<T, Global>>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
[src]
self: Pin<&mut Box<T, Global>>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
impl<T> AsyncSeek for Cursor<T> where
T: AsRef<[u8]> + Unpin,
[src]
T: AsRef<[u8]> + Unpin,
pub fn start_seek(self: Pin<&mut Cursor<T>>, pos: SeekFrom) -> Result<(), Error>
[src]
pub fn poll_complete(
self: Pin<&mut Cursor<T>>,
&mut Context<'_>
) -> Poll<Result<u64, Error>>
[src]
self: Pin<&mut Cursor<T>>,
&mut Context<'_>
) -> Poll<Result<u64, Error>>
impl<'_, T> AsyncSeek for &'_ mut T where
T: AsyncSeek + Unpin + ?Sized,
[src]
T: AsyncSeek + Unpin + ?Sized,
pub fn start_seek(self: Pin<&mut &'_ mut T>, pos: SeekFrom) -> Result<(), Error>
[src]
pub fn poll_complete(
self: Pin<&mut &'_ mut T>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
[src]
self: Pin<&mut &'_ mut T>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
impl<L, R> AsyncSeek for Either<L, R> where
R: AsyncSeek,
L: AsyncSeek,
[src]
R: AsyncSeek,
L: AsyncSeek,
pub fn start_seek(
self: Pin<&mut Either<L, R>>,
position: SeekFrom
) -> Result<(), Error>
[src]
self: Pin<&mut Either<L, R>>,
position: SeekFrom
) -> Result<(), Error>
pub fn poll_complete(
self: Pin<&mut Either<L, R>>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>
[src]
self: Pin<&mut Either<L, R>>,
cx: &mut Context<'_>
) -> Poll<Result<u64, Error>>