Commit Graph

506 Commits

Author SHA1 Message Date
bluss 6c71597565 Bump to 0.3.13 2016-01-13 13:10:36 +01:00
bluss 8a5efd1ddb Merge pull request #19 from bluss/dispose-and-more
Dispose and more
2016-01-13 13:07:42 +01:00
bluss c9b17628bf Test on older rust releases in travis 2016-01-13 13:06:32 +01:00
bluss 62d372ce1f Add DerefMut for ArrayString 2016-01-13 13:01:13 +01:00
bluss 2046e3f726 Add method CapacityError::simplify
This is needed so that CapacityError<&str> isn't prohibitively difficult
to use. It converts to CapacityError<()>.
2016-01-13 12:55:29 +01:00
bluss d991c17a25 ArrayString::push_str: Write capacity check in safer style
Use an arithmetic overflow safe conditional.
2015-12-29 12:12:42 +01:00
bluss 440bcbf66b Add ArrayVec::dispose() 2015-12-29 12:12:42 +01:00
bluss 455b28fd61 Merge pull request #18 from bluss/needs-drop
nodrop: Add feature flag use_needs_drop; Tag version 0.1.5
2015-12-14 04:27:05 +01:00
bluss e929801c7e Update travis.yml to only build master branch 2015-12-14 04:22:58 +01:00
bluss 2d55a2d507 nodrop: Add feature flag use_needs_drop; Tag version 0.1.5 2015-12-14 04:21:44 +01:00
bluss 1921048acd Bump version 2015-09-20 16:07:54 +02:00
bluss 76205447ad Merge pull request #15 from bluss/error-trait
Implement Error trait for CapacityError
2015-09-20 13:36:55 +02:00
bluss c73d5fa203 Implement Error trait for CapacityError 2015-09-20 13:02:08 +02:00
bluss d833e2c56d Merge pull request #14 from bluss/arraystring
Arraystring
2015-09-20 12:49:39 +02:00
bluss 7b47f1e891 Use no public fields for CapacityError 2015-09-18 01:00:55 +02:00
bluss 90de29e6cb Remove zero from the Index trait 2015-09-18 00:53:19 +02:00
bluss 6af588cb2c ArrayString: Add PartialEq, Eq, Hash, and tests 2015-09-18 00:52:17 +02:00
bluss fcd7b28124 Merge pull request #13 from tbu-/pr_arraystring
Add `ArrayString`, which is to `ArrayVec` what `String` is to `Vec`
2015-09-18 00:38:00 +02:00
Tobias Bucher 6a8fdfdedb Make push and push_str return Results
The error type is called `CapacityError` and lets you extract the pushed
element.
2015-09-13 12:52:16 +01:00
bluss 10aa8245d8 ArrayString: Make Copy, don't use ArrayVec 2015-09-12 14:36:53 +02:00
Tobias Bucher 078dbf4b15 Move ArrayVec back into the main file 2015-09-12 13:22:30 +01:00
Tobias Bucher 4977da3502 Add ArrayString, which is to ArrayVec what String is to Vec 2015-09-11 14:45:09 +01:00
bluss 5a0e53257c Bump version 2015-09-10 19:52:06 +02:00
bluss def1be54ed Add test for Write 2015-09-10 19:49:37 +02:00
bluss 81b5bd32c0 Merge pull request #12 from tbu-/pr_write
Add `io::Write` implementation akin to `Vec`
2015-09-10 19:47:53 +02:00
Tobias Bucher 98b1370e46 Add io::Write implementation akin to Vec 2015-09-10 18:35:30 +01:00
bluss c3f2866bd3 Complete PartialOrd implementation
PartialOrd partialness requires all methods to be overridden to provide
consistent quirkyness with floats.
2015-09-10 15:13:26 +02:00
bluss 5b29055b5a cleanup in insert 2015-09-10 15:10:04 +02:00
bluss 6bd31617b6 Remove redundant local 2015-09-10 15:10:04 +02:00
bluss d2397e03ef Merge pull request #11 from tbu-/pr_ord
Add `PartialOrd` and `Ord` implementation for `ArrayVec`
2015-09-10 15:09:06 +02:00
Tobias Bucher 1737a24e0d Add PartialOrd and Ord implementation for ArrayVec 2015-09-10 13:51:47 +01:00
bluss 876c7c049b Merge pull request #10 from tbu-/pr_default
Add `Default` implementation for `ArrayVec`
2015-09-10 14:32:20 +02:00
Tobias Bucher 32832aa0f2 Add Default implementation for ArrayVec 2015-09-10 13:04:30 +01:00
bluss 9afff02a69 Update doc style
Remove all headings in method docs
2015-08-21 15:32:55 +02:00
bluss eaa884087d Bump version 2015-08-21 14:58:24 +02:00
bluss 20500c5c6c Merge pull request #6 from bluss/nodrop-restored
Use NoDrop to fix panic safety issues
2015-08-21 14:56:17 +02:00
bluss ee3d164895 Update doc generation for having nodrop as a dependency 2015-08-21 14:54:33 +02:00
bluss c35760e02c Use NoDrop to fix panic safety issues
ArrayVec::drop was not panic safe — if there would be a panic during an
element's drop, the discriminant would never be set to Dropped, and the
array elements would potentially double drop.

Fix this by going back to the old NoDrop composition. The NoDrop struct
thas its own Drop impl, that will trigger too on panic during an element's
drop. This serves to make ArrayVec::drop panic safe.

Also tweak IntoIter::drop to make it panic safe: set inner ArrayVec's
length before dropping any elements.

Thank you to @Stebalien for reporting this bug and providing the
excellent testcases in this commit.

Using NoDrop expands ArrayVec to have two drop flags again, but this
is a temporary tradeoff, drop flags will eventually go away.

Fixes #3
2015-08-20 22:33:01 +02:00
bluss 804fb9692a Add cargo test --release to the travis run 2015-08-20 22:26:49 +02:00
root b6d4d82808 arrayvec: Bump version 2015-07-30 16:52:55 +02:00
root 9e4bac559c arrayvec: Make nodrop purely a dev-dependency
We generate docs for it, but we don't need it.
2015-07-30 16:51:07 +02:00
root d4612de8f4 Add custom.css for docs 2015-07-30 16:49:57 +02:00
bluss 235320e393 Merge pull request #1 from bluss/nodrop
Nodrop
2015-07-30 16:19:57 +02:00
root d3728b654e Bump version 2015-07-30 16:16:42 +02:00
root cf273fec1f Use a non-dropping enum directly
Don't use NoDrop as a separate abstraction: Then we have two drop flags,
one for ArrayVec and one for NoDrop. Instead import the logic from
NoDrop. The result is a much smaller ArrayVec value.
2015-07-30 16:14:04 +02:00
root 3634fa4633 Bump version 2015-06-22 16:39:52 +02:00
root 5c50c4dbc7 Add method .into_inner() 2015-06-22 16:35:21 +02:00
root 66d5d9a12e Expose ArrayVec::set_len as a pub unsafe method 2015-06-22 00:17:23 +02:00
root 5ae6e1aadc arrayvec: Use odds 0.2 and bump version 2015-06-14 14:53:05 +02:00
root 221bfd9aa0 nodrop: Use newer odds & Bump version 2015-06-14 14:52:48 +02:00