[][src]Struct positioned_io_preview::Cursor

pub struct Cursor<I> { /* fields omitted */ }

Adapts a ReadAt or WriteAt into a Read or Write.

This wraps anything that read and write at offsets, turning into an object that can read or write at a file position. This allows you to use those types with all the many functions that expect a Read or Write.

Note that seeking on Cursor has limited functionality. We don't know how many bytes are available, so we can't use SeekFrom::End. See SizeCursor for another option.

Examples

use positioned_io::{ReadAt, Cursor};

struct NetworkStorage {
    // A remote disk that supports random access.
}

impl ReadAt for NetworkStorage {
    // ...
}

// Adapt our storage into a Read.
let storage = NetworkStorage::new(SOME_LOCATION);
let curs = Cursor::new_pos(storage, 1 << 30);

// Copy a segment to a file.
let mut input = curs.take(1 << 20);
let mut output = File::create("segment.out")?;
io::copy(&mut input, &mut output)?;

Methods

impl<I> Cursor<I>
[src]

Create a new Cursor which starts reading at a specified offset.

Pass in a ReadAt or WriteAt as io.

Create a new Cursor which starts reading at offset zero.

Pass in a ReadAt or WriteAt as io.

Consume self and yield the inner ReadAt or WriteAt.

Borrow the inner ReadAt or WriteAt.

Borrow the inner ReadAt or WriteAt mutably.

Get the current read/write position.

Set the current read/write position.

Trait Implementations

impl<I: Clone> Clone for Cursor<I>
[src]

Performs copy-assignment from source. Read more

impl<I: Debug> Debug for Cursor<I>
[src]

impl<I: ReadAt> Read for Cursor<I>
[src]

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

Determines if this Reader can work with buffers of uninitialized memory. Read more

Read all bytes until EOF in this source, placing them into buf. Read more

Read all bytes until EOF in this source, appending them to buf. Read more

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

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

Transforms this Read instance to an [Iterator] over its bytes. Read more

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

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

impl<I: WriteAt> Write for Cursor<I>
[src]

Attempts to write an entire buffer into this write. Read more

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

Creates a "by reference" adaptor for this instance of Write. Read more

impl<I> Seek for Cursor<I>
[src]

Auto Trait Implementations

impl<I> Send for Cursor<I> where
    I: Send

impl<I> Sync for Cursor<I> where
    I: Sync

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<R> ReadBytesExt for R where
    R: Read + ?Sized
[src]

Reads an unsigned 8 bit integer from the underlying reader. Read more

Reads a signed 8 bit integer from the underlying reader. Read more

Reads an unsigned 16 bit integer from the underlying reader. Read more

Reads a signed 16 bit integer from the underlying reader. Read more

Reads an unsigned 24 bit integer from the underlying reader. Read more

Reads a signed 24 bit integer from the underlying reader. Read more

Reads an unsigned 32 bit integer from the underlying reader. Read more

Reads a signed 32 bit integer from the underlying reader. Read more

Reads an unsigned 48 bit integer from the underlying reader. Read more

Reads a signed 48 bit integer from the underlying reader. Read more

Reads an unsigned 64 bit integer from the underlying reader. Read more

Reads a signed 64 bit integer from the underlying reader. Read more

Reads an unsigned n-bytes integer from the underlying reader. Read more

Reads a signed n-bytes integer from the underlying reader. Read more

Reads a IEEE754 single-precision (4 bytes) floating point number from the underlying reader. Read more

Reads a IEEE754 double-precision (8 bytes) floating point number from the underlying reader. Read more

Reads a sequence of unsigned 16 bit integers from the underlying reader. Read more

Reads a sequence of unsigned 32 bit integers from the underlying reader. Read more

Reads a sequence of unsigned 64 bit integers from the underlying reader. Read more

Reads a sequence of signed 16 bit integers from the underlying reader. Read more

Reads a sequence of signed 32 bit integers from the underlying reader. Read more

Reads a sequence of signed 64 bit integers from the underlying reader. Read more

Reads a sequence of IEEE754 single-precision (4 bytes) floating point numbers from the underlying reader. Read more

Deprecated since 1.2.0

: please use read_f32_into instead

DEPRECATED. Read more

Reads a sequence of IEEE754 double-precision (8 bytes) floating point numbers from the underlying reader. Read more

Deprecated since 1.2.0

: please use read_f64_into instead

DEPRECATED. Read more

impl<W> WriteBytesExt for W where
    W: Write + ?Sized
[src]

Writes an unsigned 8 bit integer to the underlying writer. Read more

Writes a signed 8 bit integer to the underlying writer. Read more

Writes an unsigned 16 bit integer to the underlying writer. Read more

Writes a signed 16 bit integer to the underlying writer. Read more

Writes an unsigned 24 bit integer to the underlying writer. Read more

Writes a signed 24 bit integer to the underlying writer. Read more

Writes an unsigned 32 bit integer to the underlying writer. Read more

Writes a signed 32 bit integer to the underlying writer. Read more

Writes an unsigned 48 bit integer to the underlying writer. Read more

Writes a signed 48 bit integer to the underlying writer. Read more

Writes an unsigned 64 bit integer to the underlying writer. Read more

Writes a signed 64 bit integer to the underlying writer. Read more

Writes an unsigned n-bytes integer to the underlying writer. Read more

Writes a signed n-bytes integer to the underlying writer. Read more

Writes a IEEE754 single-precision (4 bytes) floating point number to the underlying writer. Read more

Writes a IEEE754 double-precision (8 bytes) floating point number to the underlying writer. Read more