Restructure and trim down the library

This commit is a significant overhaul of the library in an effort to head
towards a stable API. The rope implementation as well as a number of buffer
implementations have been removed from the library and will live at
https://github.com/carllerche/bytes-more while they incubate.

**Bytes / BytesMut**

`Bytes` is now an atomic ref counted byte slice. As it is contigous, it offers
a richer API than before.

`BytesMut` is a mutable variant. It is safe by ensuring that it is the only
handle to a given byte slice.

**AppendBuf -> ByteBuf**

`AppendBuf` has been replaced by `ByteBuf`. The API is not identical, but is
close enough to be considered a suitable replacement.

**Removed types**

The following types have been removed in favor of living in bytes-more

* RingBuf
* BlockBuf
* `Bytes` as a rope implementation
* ReadExt
* WriteExt
This commit is contained in:
Carl Lerche
2016-11-02 14:23:45 -07:00
parent d717fde5ca
commit 57e84f267b
40 changed files with 1419 additions and 3282 deletions
+18 -32
View File
@@ -1,36 +1,22 @@
#![crate_name = "bytes"]
#![deny(warnings)]
//! Provides abstractions for working with bytes.
#![deny(warnings, missing_docs)]
#[macro_use]
extern crate log;
extern crate byteorder;
// Implementation in here
mod imp;
// TODO: delete
mod alloc;
mod buf;
mod bytes;
pub use imp::buf::{Buf, MutBuf, IntoBuf};
pub use imp::bytes::Bytes;
pub mod buf {
//! Traits, helpers, and type definitions for working with buffers.
pub use imp::buf::{
Source,
Sink,
Reader,
ReadExt,
Writer,
WriteExt,
Fmt,
};
pub use imp::buf::slice::SliceBuf;
pub use imp::buf::append::AppendBuf;
pub use imp::buf::block::{BlockBuf, BlockBufCursor};
pub use imp::buf::bound::{BoundBuf};
pub use imp::buf::ring::RingBuf;
pub use imp::buf::take::Take;
pub use imp::bytes::BytesBuf;
}
pub use buf::{
Buf,
BufMut,
IntoBuf,
Source,
Sink,
Reader,
Writer,
};
pub use buf::byte::{ByteBuf};
pub use buf::slice::{SliceBuf};
pub use buf::take::{Take, TakeMut};
pub use bytes::{Bytes, BytesMut};