Commit Graph

17 Commits

Author SHA1 Message Date
Lokathor 6a4491c47b improve ArrayVec::push panic message
Closes https://github.com/Lokathor/tinyvec/issues/24
2020-01-19 12:59:21 -07:00
Lokathor fc564bfc25 Merge pull request #36 from HeroicKatora/fill
Add a fill method, a panic-free extend alternative
2020-01-18 19:14:17 -07:00
Lokathor d8f6f36e05 Merge pull request #34 from HeroicKatora/retain
Implement linear time retain
2020-01-18 19:00:53 -07:00
Andreas Molzer 89c1023f1b Add a fill method, a panic-free extend alternative
This is an alternative to `Extend::extend` method for cases where the
length of the iterator can not be checked. Since this vector can not
reallocate to increase its capacity, it is unclear what to do with
remaining elements in the iterator and the iterator itself. The
interface also provides no way to communicate this to the caller.
2020-01-18 19:28:36 +01:00
Andreas Molzer cd4cd34c47 Fix element drop order on failed insert 2020-01-18 19:02:22 +01:00
Andreas Molzer 52f8446e40 Implement linear time retain 2020-01-18 18:37:38 +01:00
Andreas Molzer c21132b495 Simplify resize with element or function
Avoids a call to Clone of the element by using the provided instance as
the one inserted last. A similar optimization is used in the standard
library. Also changes the iteration to an independent iterator as the
number of insert elements must be known in advance.
2020-01-18 18:27:03 +01:00
Andreas Molzer 381eacaa46 Use mem::take shorthand for defaulted replace
This makes the code more readable by shortening lines and avoid explicit
or redundant type annotations. The core function would require a rust
version of 1.40 so straightforward implementation is added to the crate.
2020-01-18 18:26:10 +01:00
Andreas Molzer eed51be53b Switch to slice swapping for split
The new slice is already initialized with default values for T due to
the constructor used. Instead of using different defaulted values for
replacing the split-off instances we can simply swap slices. This
reduces pressure on the optimizer and uses a probably optimized method
from the core library.
2020-01-18 17:24:27 +01:00
Andreas Molzer fd28ecb105 Test and fix removal at past-the-end index 2020-01-18 13:24:58 +01:00
Lokathor 26ff5dd822 We'll call this a 1.0 canidate! 2020-01-18 00:16:25 -07:00
Lokathor 9a726afafa remove the try_push thing 2020-01-17 23:28:25 -07:00
Lokathor 6423cba954 breaking: make Array trait follow standard Rust naming 2020-01-17 22:47:53 -07:00
Lokathor 4bd7d65e32 Update arrayvec.rs 2020-01-15 19:45:49 -07:00
Lokathor 463b595da9 doc them nightly methods. 2020-01-13 21:38:15 -07:00
Lokathor b2c3141a6a more docs, more renames, closer to being good. 2020-01-13 21:34:22 -07:00
Lokathor c74c1e3785 rename arrayish to array I guess
The "ish" part was always supposed to be temporary.
2020-01-13 21:12:04 -07:00