broker_tokio::io

Trait AsyncSeek

Source
pub trait AsyncSeek {
    // Required methods
    fn start_seek(
        self: Pin<&mut Self>,
        cx: &mut Context<'_>,
        position: SeekFrom,
    ) -> Poll<Result<()>>;
    fn poll_complete(
        self: Pin<&mut Self>,
        cx: &mut Context<'_>,
    ) -> Poll<Result<u64>>;
}
Expand description

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§

Source

fn start_seek( self: Pin<&mut Self>, cx: &mut Context<'_>, position: SeekFrom, ) -> Poll<Result<()>>

Attempt 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.

Source

fn poll_complete( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<u64>>

Wait 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§

Source§

impl<P> AsyncSeek for Pin<P>
where P: DerefMut + Unpin, P::Target: AsyncSeek,

Source§

fn start_seek( self: Pin<&mut Self>, cx: &mut Context<'_>, pos: SeekFrom, ) -> Poll<Result<()>>

Source§

fn poll_complete( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<u64>>

Source§

impl<T: AsRef<[u8]> + Unpin> AsyncSeek for Cursor<T>

Source§

fn start_seek( self: Pin<&mut Self>, _: &mut Context<'_>, pos: SeekFrom, ) -> Poll<Result<()>>

Source§

fn poll_complete(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Result<u64>>

Source§

impl<T: ?Sized + AsyncSeek + Unpin> AsyncSeek for &mut T

Source§

fn start_seek( self: Pin<&mut Self>, cx: &mut Context<'_>, pos: SeekFrom, ) -> Poll<Result<()>>

Source§

fn poll_complete( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<u64>>

Source§

impl<T: ?Sized + AsyncSeek + Unpin> AsyncSeek for Box<T>

Source§

fn start_seek( self: Pin<&mut Self>, cx: &mut Context<'_>, pos: SeekFrom, ) -> Poll<Result<()>>

Source§

fn poll_complete( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<u64>>

Implementors§

Source§

impl AsyncSeek for File

Available on crate feature fs only.