# tokio::io::AsyncSeekExt - Rust
API documentation for the Rust `AsyncSeekExt` trait in crate `tokio`.
Keywords: rust, rustlang, rust-lang, AsyncSeekExt

# Trait tokio::io::AsyncSeekExt [−] [src]

    pub trait AsyncSeekExt: AsyncSeek {
        fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>
        where
            Self: Unpin,
        { ... }
    }

An extension trait that adds utility methods to `AsyncSeek` types.

# Examples

    use std::io::{self, Cursor, SeekFrom};
    use tokio::io::{AsyncSeekExt, AsyncReadExt};

    #[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 documentation for more details.

## Provided methods

### `fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self> where
Self: Unpin,` [src]

Creates a future which will seek an IO object, and then yield the new position in the object and the object itself.

Equivalent to:

ⓘ

    async fn seek(&mut self, pos: SeekFrom) -> io::Result<u64>;

In the case of an error the buffer and the object will be discarded, with the error yielded.

# Examples

    use tokio::fs::File;
    use tokio::io::{AsyncSeekExt, AsyncReadExt};

    use std::io::SeekFrom;

    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?;

Loading content...

## Implementors

### `impl<S: AsyncSeek + ?Sized> AsyncSeekExt for S` [src]

Loading content...