Commit Graph

88 Commits

Author SHA1 Message Date
Lokathor c81bc9f0b1 Add the SliceVec type (#68)
* start of slicevec

* remove todo! because it's not in 1.36

* Update Cargo.toml

* slice vec into iterator

* slicevec drain

* complete last unimplemented

* remove the extra default feature

* spelling

* Update src/slicevec.rs

Co-Authored-By: Joshua Nelson <joshua@yottadb.com>

* docs clarification.

Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-04-22 12:31:56 -06:00
Josh Stone d04abff44c impl IntoIterator for &/&mut ArrayVec (#69)
These just create slice iterators, but the impls are useful to have for
contexts that don't auto-deref, as in the new tests.
2020-03-31 13:36:39 -06:00
Evgeny Rozaliev 5ba37a6b3a TinyVec::from([T]) (#66) 2020-03-17 14:15:39 -06:00
Lokathor b94c08cd43 Update arrayvec.rs 2020-02-11 12:32:18 -07:00
Lokathor 695cc79635 Update arrayvec.rs 2020-02-11 12:15:19 -07:00
Lokathor cc55f669c4 Improve Write impl efficiency 2020-02-10 20:14:20 -07:00
Lokathor 574126f56b oops, dumb lifetimes. 2020-02-10 20:06:35 -07:00
Lokathor 3b06e8498c put in a highly experimental Write impl for ArrayVec of bytes 2020-02-10 20:02:56 -07:00
Lokathor 49a26a2bd5 Closes https://github.com/Lokathor/tinyvec/issues/48 2020-02-10 19:52:15 -07:00
dxenonb 47fd42eefd Fix typo 2020-02-06 20:57:22 -05:00
Wim Looman ac8dfa5cef Allow inferring array type for macro constructors 2020-01-28 12:51:35 +01:00
Wim Looman 45275fbbc2 Make macros work without any other imports 2020-01-28 12:46:39 +01:00
Wim Looman 5e46d949af Allow trailing comma in tiny_vec! 2020-01-28 12:43:32 +01:00
Lokathor 922aa16856 Merge pull request #57 from Lokathor/optimize-large-tiny_vec-macro-usage
Makes `tiny_vec!` go directly to the heap if the CAPACITY would have overflowed.
2020-01-26 14:56:30 -07:00
mgostIH a699b96036 Fixed links in documentation by removing ::<A> 2020-01-26 22:25:33 +01:00
Lokathor 8bb66c5676 Update tinyvec.rs 2020-01-26 14:20:40 -07:00
Lokathor 180cf57ce3 sigh 2020-01-26 13:53:13 -07:00
Lokathor f5d6afb5af clippy 2020-01-26 13:47:24 -07:00
Lokathor 9cd112fb8f Merge branch 'small-updates' of https://github.com/Lokathor/tinyvec into small-updates 2020-01-26 13:38:41 -07:00
Lokathor ddf66f2222 docs, and fix up tiny_vec macro 2020-01-26 13:38:38 -07:00
Lokathor 44373a53a2 Merge branch 'master' into small-updates 2020-01-26 13:37:57 -07:00
Lokathor d296cb65a6 Merge branch 'master' into small-updates 2020-01-26 12:44:18 -07:00
Lokathor d155790c50 Merge pull request #56 from mgostIH/drain
Added more efficient implementation for ArrayVecDrain
2020-01-26 12:39:16 -07:00
Lokathor c1ec9582ac Merge pull request #54 from Nemo157/intoiter-debug
impl Debug for {Tiny,Array}VecIterator
2020-01-26 12:38:00 -07:00
Lokathor 398b3e1072 Merge pull request #52 from Nemo157/refintoiter
impl IntoIterator for &[mut] TinyVec
2020-01-26 12:36:46 -07:00
mgostIH fbcc24e988 Added more efficient implementation for ArrayVecDrain, changed a few internal members of the struct, tests passed 2020-01-26 13:51:25 +01:00
Wim Looman 109e9b6e61 impl Debug for {Tiny,Array}VecIterator 2020-01-24 14:40:17 +01:00
Wim Looman a033772cbd impl IntoIterator for &[mut] TinyVec 2020-01-24 14:28:57 +01:00
Lokathor d07708595a Convert code notes into GitHub issues 2020-01-24 02:46:18 -07:00
Lokathor 9459d40649 cleanups 2020-01-24 02:38:18 -07:00
Lokathor b2a9fe8e80 pipe down ya silly compiler 2020-01-24 02:38:03 -07:00
Lokathor 0f799c6b86 take should really always be inlined 2020-01-24 00:41:23 -07:00
Lokathor 212bf713a8 must_use on Array methods 2020-01-24 00:38:45 -07:00
Lokathor 9e2d179174 Update tinyvec.rs 2020-01-24 00:37:02 -07:00
Wesley Norris 6ea2d1afcb Add From<&[T]> and From<&mut [T]> for TinyVec
This adds the From trait impls for `&[T]` and `&mut [T]` to `TinyVec`,
though unfortunately until we get lazy normalization, it currently
requires that the `A: Array<item = T>` bound also be `Default`, so
it does not work for array sizes > 32.
2020-01-23 17:58:27 -05:00
Lokathor 08a8db9a3f add Hash to ArrayVec and TinyVec 2020-01-20 18:48:18 -07:00
Lokathor 713fa03339 improve the note 2020-01-19 13:21:25 -07:00
Lokathor cc35f01600 fix an ambiguity warning/error thing 2020-01-19 13:04:08 -07:00
Lokathor 032ac155c9 cargo fmt hasn't been used in a while it seems. 2020-01-19 13:02:54 -07:00
Lokathor 11b8f629f2 greatly improve extend_from_slice (+formatting)
Closes https://github.com/Lokathor/tinyvec/issues/25
(Thanks ThatsNoMoon!)
2020-01-19 13:02:14 -07:00
Lokathor 6a4491c47b improve ArrayVec::push panic message
Closes https://github.com/Lokathor/tinyvec/issues/24
2020-01-19 12:59:21 -07:00
mental dd802b30fa Account for heap allocated capacities. 2020-01-19 04:57:34 +00: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
Lokathor 23aafa1825 Merge pull request #33 from HeroicKatora/simplify
Some Simplifications and efficiency changes
2020-01-18 10:33:24 -07: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