Trait tokio::io::AsyncSeekExt

source ·
pub trait AsyncSeekExt: AsyncSeek {
    fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>
        Self: Unpin
, { ... } fn rewind(&mut self) -> Seek<'_, Self>
        Self: Unpin
, { ... } fn stream_position(&mut self) -> Seek<'_, Self>
        Self: Unpin
, { ... } }
Expand description

An extension trait that adds utility methods to AsyncSeek types.


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

async fn main() -> io::Result<()> {
    let mut cursor = Cursor::new(b"abcdefg");

    // the `seek` method is defined by this trait;

    let mut buf = [0; 1];
    let n = buf).await?;
    assert_eq!(n, 1);
    assert_eq!(buf, [b'd']);


See module documentation for more details.

Provided Methods§

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.

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

use std::io::SeekFrom;

let mut file = File::open("foo.txt").await?;;

let mut contents = vec![0u8; 10];
file.read_exact(&mut contents).await?;

Creates a future which will rewind to the beginning of the stream.

This is convenience method, equivalent to

Creates a future which will return the current seek position from the start of the stream.

This is equivalent to