iobuf

Crates.ioiobuf
lib.rsiobuf
version5.8.1
sourcesrc
created_at2014-11-20 23:50:09.735498
updated_at2017-07-23 21:50:57.648181
descriptionA contiguous region of bytes, useful for I/O operations.
homepagehttps://github.com/cgaebel/iobuf
repositoryhttps://github.com/cgaebel/iobuf
max_upload_size
id186
size184,824
Clark Gaebel (cgaebel)

documentation

https://cgaebel.github.io/iobuf

README

Iobuf

A contiguous region of bytes, useful for I/O operations.

crates.io

Build Status

An Iobuf consists of:

  • a buffer
  • limits (a subrange of the buffer)
  • a window (a subrange of the limits)

All iobuf operations are restricted to operate within the limits. Initially, the window of an Iobuf is identical to the limits. If you have an &mut to an Iobuf, you may change the window and limits. If you only have a &, you may not. Similarly, if you have a RWIobuf, you may modify the data in the buffer. If you have a ROIobuf, you may not.

The limits can be narrowed, but never widened. The window may be set to any arbitrary subrange of the limits.

Iobufs are cheap to clone, since the buffers are refcounted. Use this to construct multiple views into the same data.

This started out as a direct port of Jane Street Core's Iobuf module, but has evolved into much more.

Documentation

See the very thorough API Docs.

Commit count: 361

cargo fmt