#read-write #read #write #seek #block-devices #read-at #write-at

read_write_at

Abstraction over a file or block device that can be read/written with offset

1 unstable release

0.1.0 Jun 22, 2020

#1030 in Hardware support


Used in disko

MIT/Apache

20KB
352 lines

read_write_at

Abstraction of a file- or block derive-like object, data from/to which can be read/written at offsets.

There are alreay some analogues of those traits, including in libstd. But they are either platform-specific or tied to implementation of some algorithm.

This crate focuses on the abstraction itself, providing mostly wrappers and helper functions.

Traits are given in two varieties: with mutable &mut self and immutable &self methods.

libstd's platform-specific FileExt traits are forwarded for std::fs::File.

There is a generic wrapper for using Read+Seek or Read+Write+Seek objects

Immutable version of traits are implemented for RefCells or Mutexs over mutable versions. You may need to use DerefWrapper it you use trait ojects although.

TODO:

  • vectored IO
  • async?
  • reading to uninitialized buffers?
  • bytes crate intergration?

License: MIT/Apache-2.0


lib.rs:

Abstraction of a file- or block derive-like object, data from/to which can be read/written at offsets.

There are alreay some analogues of those traits, including in libstd. But they are either platform-specific or tied to implementation of some algorithm.

This crate focuses on the abstraction itself, providing mostly wrappers and helper functions.

Traits are given in two varieties: with mutable &mut self and immutable &self methods.

libstd's platform-specific FileExt traits are forwarded for std::fs::File.

There is a generic wrapper for using Read+Seek or Read+Write+Seek objects

Immutable version of traits are implemented for RefCells or Mutexs over mutable versions. You may need to use DerefWrapper it you use trait ojects although.

TODO:

  • vectored IO
  • async?
  • reading to uninitialized buffers?
  • bytes crate intergration?

No runtime deps