[][src]Trait pwn::io::AsyncSeek

pub trait AsyncSeek {
    fn start_seek(
        self: Pin<&mut Self>,
        cx: &mut Context,
        position: SeekFrom
    ) -> Poll<Result<(), Error>>;
fn poll_complete(
        self: Pin<&mut Self>,
        cx: &mut Context
    ) -> Poll<Result<u64, Error>>; }

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<(), Error>>

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

Errors

Seeking to a negative offset is considered an error.

Panics

Calling this method without calling start_seek first is an error.

Loading content...

Implementations on Foreign Types

impl<T> AsyncSeek for Box<T> where
    T: AsyncSeek + Unpin + ?Sized
[src]

impl<P> AsyncSeek for Pin<P> where
    P: DerefMut + Unpin,
    <P as Deref>::Target: AsyncSeek
[src]

impl<'_, T> AsyncSeek for &'_ mut T where
    T: AsyncSeek + Unpin + ?Sized
[src]

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

Loading content...

Implementors

impl AsyncSeek for File[src]

Loading content...