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.
Cursor
s 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
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
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ImplFuture<Result<usize>> where
Self: Unpin,
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ImplFuture<Result<usize>> where
Self: Unpin,
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
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
Writes an entire buffer into the byte stream. 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
Writes an entire buffer into the byte stream. 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
Writes an entire buffer into the byte stream. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Cursor<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Cursor<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more