Struct async_std::io::Cursor[][src]

pub struct Cursor<T> { /* fields omitted */ }
Expand description

A Cursor wraps an in-memory buffer and provides it with a Seek implementation.

Cursors are used with in-memory buffers, anything implementing AsRef<[u8]>, to allow them to implement Read and/or Write, allowing these buffers to be used anywhere you might use a reader or writer that does actual I/O.

The standard library implements some I/O traits on various types which are commonly used as a buffer, like Cursor<Vec<u8>> and Cursor<&[u8]>.

Implementations

Creates a new cursor wrapping the provided underlying in-memory buffer.

Cursor initial position is 0 even if underlying buffer (e.g., Vec) is not empty. So writing to cursor starts with overwriting Vec content, not with appending to it.

Examples

use async_std::io::Cursor;

let buff = Cursor::new(Vec::new());

Consumes this cursor, returning the underlying value.

Examples

use async_std::io::Cursor;

let buff = Cursor::new(Vec::new());

let vec = buff.into_inner();

Gets a reference to the underlying value in this cursor.

Examples

use async_std::io::Cursor;

let buff = Cursor::new(Vec::new());

let reference = buff.get_ref();

Gets a mutable reference to the underlying value in this cursor.

Care should be taken to avoid modifying the internal I/O state of the underlying value as it may corrupt this cursor’s position.

Examples

use async_std::io::Cursor;

let mut buff = Cursor::new(Vec::new());

let reference = buff.get_mut();

Returns the current position of this cursor.

Examples

use async_std::io::Cursor;
use async_std::io::prelude::*;
use async_std::io::SeekFrom;

let mut buff = Cursor::new(vec![1, 2, 3, 4, 5]);

assert_eq!(buff.position(), 0);

buff.seek(SeekFrom::Current(2)).await?;
assert_eq!(buff.position(), 2);

buff.seek(SeekFrom::Current(-1)).await?;
assert_eq!(buff.position(), 1);

Sets the position of this cursor.

Examples

use async_std::io::Cursor;

let mut buff = Cursor::new(vec![1, 2, 3, 4, 5]);

assert_eq!(buff.position(), 0);

buff.set_position(2);
assert_eq!(buff.position(), 2);

buff.set_position(4);
assert_eq!(buff.position(), 4);

Trait Implementations

Returns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more

Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to read. Read more

Reads all bytes into buf until the delimiter byte or EOF is reached. Read more

Reads all bytes and appends them into buf until a newline (the 0xA byte) is reached. Read more

Returns a stream over the lines of this byte stream. Read more

Returns a stream over the contents of this reader split on the byte byte. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Attempt to read from the AsyncRead into buf.

Attempt to read from the AsyncRead into bufs using vectored IO operations.

Reads some bytes from the byte stream. Read more

Like read, except that it reads into a slice of buffers. Read more

Reads all bytes from the byte stream. Read more

Reads all bytes from the byte stream and appends them into a string. Read more

Reads the exact number of bytes required to fill buf. Read more

Creates an adaptor which will read at most limit bytes from it. Read more

Creates a “by reference” adaptor for this instance of Read. Read more

Transforms this Read instance to a Stream over its bytes. Read more

Creates an adaptor which will chain this stream with another. Read more

Attempt to seek to an offset, in bytes, in a stream.

Seeks to a new position in a byte stream. Read more

Attempt to write bytes from buf into the object.

Attempt to write bytes from bufs into the object using vectored IO operations.

Attempt to flush the object, ensuring that any buffered data reach their destination. Read more

Attempt to close the object.

Writes some bytes into the byte stream. Read more

Flushes the stream to ensure that all buffered contents reach their destination. Read more

Like write, except that it writes from a slice of buffers. Read more

Writes an entire buffer into the byte stream. Read more

Writes a formatted string into this writer, returning any error encountered. Read more

Attempt to write bytes from buf into the object.

Attempt to close the object.

Attempt to flush the object, ensuring that any buffered data reach their destination. Read more

Attempt to write bytes from bufs into the object using vectored IO operations.

Writes some bytes into the byte stream. Read more

Flushes the stream to ensure that all buffered contents reach their destination. Read more

Like write, except that it writes from a slice of buffers. Read more

Writes an entire buffer into the byte stream. Read more

Writes a formatted string into this writer, returning any error encountered. Read more

Attempt to write bytes from buf into the object.

Attempt to close the object.

Attempt to flush the object, ensuring that any buffered data reach their destination. Read more

Attempt to write bytes from bufs into the object using vectored IO operations.

Writes some bytes into the byte stream. Read more

Flushes the stream to ensure that all buffered contents reach their destination. Read more

Like write, except that it writes from a slice of buffers. Read more

Writes an entire buffer into the byte stream. Read more

Writes a formatted string into this writer, returning any error encountered. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.