Commit Graph
34 Commits
Author SHA1 Message Date
Carl Lerche 57e84f267b 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
2016-11-02 14:23:45 -07:00
Carl Lerche 98e0d954b5 Reorganize crate 2016-09-23 12:05:32 -07:00
Carl Lerche d05bfb6346 Add more Buf helpers 2016-09-23 07:53:17 -07:00
Carl Lerche 3c58b0c75c Add take fn to Buf & MutBuf 2016-09-21 20:41:21 -07:00
Carl Lerche 4105901244 Rename RingBuf::new -> with_capacity 2016-09-20 13:42:24 -07:00
Nikolay Kim 1f188b5628 fix dropping front block in BlockBuf 2016-09-13 15:30:44 -07:00
Stefan BühlerandCarl Lerche f693e038d9 Fix buffer overflow in Sink for Vec<u8>
Fixes #46
2016-09-03 13:25:40 -07:00
Carl Lerche 046c864543 Integrate with byteorder 2016-08-31 12:07:44 -07:00
Carl Lerche 38abb8074b Create ByteBuf with MutByteBuf::with_capacity 2016-08-23 14:22:39 -07:00
Carl Lerche fbebb19a02 Simplify allocation strategy for now
Not having `unsafe_no_drop_flag` caused some weirdness with optimizing buffers
and bytes. For now, remeove it.
2016-08-11 01:36:16 -07:00
Carl Lerche 04e0ac75e2 Huge overhaul of bytes
* Get rid of `ByteStr` trait
* `Bytes` is not a concrete type
* Add `BlockBuf`
* Delete lots of cruft
* Performance work
2016-08-10 15:45:31 -07:00
Carl Lerche b2efe63c70 Get rid of SliceBuf 2016-08-05 22:49:41 -07:00
Carl Lerche 16b4266c3c Improve Buf/MutBuf impl for Cursor 2016-08-05 22:19:37 -07:00
Carl Lerche b6a424d892 Get rid of BufError 2016-08-05 21:54:29 -07:00
Carl Lerche d650404bb8 Add an AppendBuf 2016-07-23 09:49:59 -07:00
Carl Lerche dc25c7564e Refactor heap allocation 2016-07-20 13:27:41 +02:00
Carl Lerche 3ca009577b Bytes reader should be Send 2016-06-19 21:32:18 +01:00
Carl Lerche 270d2e2844 Freshen up buf API 2016-06-08 14:48:49 -07:00
Carl Lerche 6b624b849a Make MutBuf::advance unsafe
Closes #38
2015-12-03 19:57:08 -08:00
Florian HartwigandCarl Lerche 01c1e05a91 Implement Debug for the various ByteBuf types 2015-09-25 09:47:46 -07:00
Nandor KracserandCarl Lerche a76dd8ed0e Add clear method to RingBuf 2015-09-25 09:45:55 -07:00
Dawid Ciężarkiewicz 7edb577d0a Fix for latest rustc. 2015-08-10 21:53:14 -07:00
Carl Lerche 531c77654c Merge branch 'v0.2.x' 2015-08-10 10:14:32 -07:00
Carl Lerche ed087be853 Provide Take decorator that limits Buf size 2015-07-28 12:51:24 -07:00
Carl Lerche b4abd1431a Mark MutBuf::mut_buf as unsafe
`MutBuf::mut_buf` allows access to uninitialized memory.
2015-07-26 11:02:46 -07:00
Carl Lerche 296cac263c Implement buffer traits on Vec<u8>, &[u8], Cursor 2015-07-24 16:52:19 -07:00
Paul Cavallaro 23ad12f842 Add bytes() method to MutByteBuf to allow reading of data already written
without necessitating flipping to ByteBuf.
2015-07-17 22:22:58 -04:00
Felix Kronlage c17f16fdf2 no need to be marked mutable
allows code to compile with nightly again.
2015-07-07 17:38:12 +02:00
Jamie Turner 7b63fa034f Add resume() method to ByteBuf that restores prior write position. 2015-07-02 17:19:43 -07:00
James Bielman d2b4cc3870 RingBuf: Fix edge cases with mark/reset.
- This fixes #25 and fixes #26.

- Move the mark state into a 'Mark' enum.

- Store both 'pos' and 'len' inside the mark because both
  are needed to distinguish between full/empty states. This
  fixes 'reset' setting 'len' to zero when the buffer was
  full when marked.

- Clear the mark when the length of the marked input range
  exceeds the capacity. Fixes bugs with the mark not being
  cleared correctly on writes.

- Add test cases.
2015-06-02 23:51:57 -07:00
Dan Burkert 4d645c7f53 add mark/reset feature to ByteBuf and RingBuf 2015-04-11 15:18:32 -07:00
Florian HartwigandCarl Lerche c4546493ea Fix bugs in RingBuf's io::Read and io::Write instance 2015-04-08 13:44:53 -07:00
Florian HartwigandCarl Lerche e22415b416 Fix Buf and MutBuf documentation 2015-04-08 13:43:02 -07:00
Carl Lerche ac42766535 Group files as buf or byte str related 2015-04-07 23:40:00 -07:00