Commit Graph

180 Commits

Author SHA1 Message Date
Lokathor 3ff291c63b alter docs. (#106) 2020-08-09 10:27:55 -06:00
Lokathor 8a47545150 Cratesio fix (#104)
* add with_capacity method.

* Improve docs.
2020-08-09 09:13:26 -06:00
Lokathor 5d40a3f92c add with_capacity method. (#103) 2020-08-08 19:49:31 -06:00
Lokathor 1f2178925c more fn attributes. 2020-08-08 19:09:18 -06:00
Lokathor 72ac150239 Formally move the arrayset into a backup folder. It will become a separate crate some day. 2020-08-08 19:04:39 -06:00
Lokathor b0f27be4b7 apply some fn attributes. 2020-08-08 19:01:45 -06:00
Lokathor 242580cc20 new rustfmt file. leaving fn_args_layout off for now. 2020-08-08 18:32:31 -06:00
Lokathor 1e6e751fe0 Update README.md 2020-08-06 16:23:18 -06:00
Lokathor 96149a1026 Update rust.yml 2020-08-06 16:20:56 -06:00
Lokathor 4961f95e17 Update rust.yml 2020-08-06 16:16:50 -06:00
Lokathor 673cafed4a Update rust.yml 2020-08-06 16:11:22 -06:00
Lokathor 7540862f63 update CI 2020-08-06 16:08:40 -06:00
Lokathor 6d41ca997d Create rust.yml 2020-08-06 15:56:13 -06:00
Soveu 41abf04f28 Fuzz Fuzz Fuzz (#98)
* more features for fuzzing

* arrayveciter fuzzer + overflow fix

* moar fuzzers and tinyvecdrain change

* cargo fmt

* Self on enums is not stable in 1.36

* 🐞 BUGFIX: ArrayVecIterator::nth_back

* cargo fmt
2020-08-02 14:40:13 -06:00
Lokathor 9372c2052c Update Cargo.toml 2020-07-31 16:05:29 -06:00
Soveu 78eac4ff84 Change len type from usize to u16 (#97)
* change len from usize to u16

* cargo fmt

* change len to tail
2020-07-31 13:46:05 -06:00
Sergey "Shnatsel" Davidoff 24737546d3 Expand fuzzing coverage (#95)
* Also cover reserve, reserve_exact and shrink_to_fit by fuzzing. SmallVec had a use-after-free bug in shrink_to_fit inlining so we'd better test this

* Also test extend_from_slice on tinyvec and arrayvec
2020-07-31 21:04:57 +02:00
Sergey "Shnatsel" Davidoff 12054cc899 Fuzz: drop workarounds for operations that may panic (#92)
Fuzz: drop workarounds for operations that may panic now that rutenspitz compares panic behavior
2020-07-29 15:40:12 +02:00
Jakub Wieczorek 7e57ee3a07 Fix the fuzzers that stopped compiling (#91) 2020-07-28 17:05:11 +02:00
Lokathor f05f953955 (cargo-release) start next development iteration 0.4.2-alpha.0 2020-07-23 19:05:59 -06:00
Lokathor 9bd713f11c (cargo-release) version 0.4.1 2020-07-23 19:05:45 -06:00
Soveu 820dbc4c85 A bit of everything for iterators (#87)
* slight changes functions that use drain

* bug in arrayvec iter

* reverse iter for arrayvec

* nth_back is stable since 1.37

* simpler drain for arrayvec

* soveu forgot to add changed files

* fmt + feature for rustc >= 1.40

* cosmetic changes

* does the ci work now?

* SHNAAAAAAAAATSEEEEEEEEL
2020-07-23 13:28:01 -06:00
Lokathor 81420cd6ed (cargo-release) start next development iteration 0.4.1-alpha.0 2020-07-18 00:27:39 -06:00
Lokathor f1a171df93 (cargo-release) version 0.4.0 2020-07-18 00:27:29 -06:00
Benjamin Scherer 04f65e50cf Add ArrayVec::splice and TinyVec::splice (#85)
* Add ArrayVec::splice and TinyVec::splice

Added for closer API parity with std::Vec

* Fix ArrayVec::splice example typo

* Removed FusedIterator bound from splice

This bound could've caused confusing error messages, and was
inconsistent with the Vec API. splice now uses fuse itself to ensure
consistency. Vec::splice consumes the whole iterator at once, so it
essentially has the same behavior, but this implementation gradually
consumes the iterator as elements are drained, so this fuse is necessary
to keep the behavior the same.

* Reserve additional capacity in TinyVecSplice

Used TinyVec::reserve to pre-allocate space for elements being spliced
into the TinyVec after the splicing iterator is dropped. Used the lower
bound like Vec's splice does.

* Run rustfmt
2020-07-18 00:22:59 -06:00
Soveu af665296b5 "try_*" functions and "to_vec" for arrayvec (#82)
* change behavior on extend_from_slice, append

* preallocation in extend()

* append v2

* obviously

* fix resize_with

* try_functions and to_vec on arrayvec

* shrink_to_fit

* bit of cleaning

* cosmetic changes

* use asserts instead of if-panics

* I promise, this is the last commit

* examples, tests

* matches macro exists since rust 1.42

* Update tinyvec.rs

* new extend and insert

* mem::take is from rust 1.40
2020-07-17 16:07:10 -06:00
Soveu 66077cfa99 Pre-allocate memory in extend_from_slice, extend and append functions (#80)
* change behavior on extend_from_slice, append

* preallocation in extend()

* append v2

* obviously

* fix resize_with
2020-07-17 10:21:06 -06:00
Lokathor 1a2ed23590 (cargo-release) version 0.4.0-alpha.4 2020-07-15 21:14:38 -06:00
Lokathor 7e08b2cd56 (cargo-release) version 0.4.0-alpha.3 2020-07-15 21:13:02 -06:00
Benjamin Scherer 478a8a0124 Make capacity() methods not rely on Array::CAPACITY (#83)
* Make capacity() methods not rely on Array::CAPACITY

Because Array isn't an unsafe trait, unsafe code cannot depend on the
length of a slice produced by Array::as_slice to be at least as long as
Array::CAPACITY. This means that unsafe code also cannot depend on
capacity() methods that return Array::CAPACITY. Returning the result of
a slice len() call ensures that if nothing else, with a sound
implementation of Array, capacity() methods will return a valid length
for a sub-slice of the backing array.

* Add comments explaining choice against using Array::CAPACITY
2020-07-15 21:02:26 -06:00
Lokathor 99598c1cda Fix https://github.com/Lokathor/tinyvec/issues/79#issuecomment-658747606 2020-07-15 06:53:32 -06:00
Lokathor e069cd2906 Relicense from Zlib to Zlib OR Apache-2.0 OR MIT (#81)
* rustfmt

* Replace crate description so Shnatsel doesn't need to sign off on the relicense.

* write more crate docs.
2020-07-15 06:45:39 -06:00
Lokathor 64dcb336c6 (cargo-release) version 0.4.0-alpha.2 2020-07-08 07:19:57 -06:00
Lokathor c40bf5bbd7 prep alpha release 2020-07-08 07:19:05 -06:00
Lokathor d8420baa58 fix my own error 2020-07-03 21:45:55 -06:00
Lokathor ef35f990e8 Update .travis.yml 2020-07-03 21:36:03 -06:00
Lokathor 1415fd90f9 Update arrayset.rs 2020-07-03 21:34:57 -06:00
Lokathor 5bb7c7585b Closes https://github.com/Lokathor/tinyvec/issues/75 (#77)
* Closes https://github.com/Lokathor/tinyvec/issues/75

* This is a breaking change to the macro

* benchmarks fixes.

* slim down to just `take`
2020-07-03 10:56:45 -06:00
Benjamin Scherer fb92d14ab4 Modify tiny_vec! to avoid error on non-Copy types (#74)
* Modify tiny_vec! to avoid error on non-Copy types

Using $elem in two closures in the previous version of the macro created
errors when using types that don't implement Copy. Moving the decision
of whether to allocate or use an inline array to the macro invocation
resolves this error as the borrow checker can see that both branches are
never taken together.

* Add test for tiny_vec! using non-Copy types

* Fix inference issue

* Use full crate path in tiny_vec!
2020-06-18 09:22:21 -06:00
Diggory Hardy 726167b3a9 Implement ArraySet (#73) 2020-06-18 09:21:53 -06:00
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
Lokathor 0c31798eba start next version 2020-03-25 18:09:35 -06:00
Lokathor 7052ec9b81 (cargo-release) version 0.3.3 2020-03-25 18:07:03 -06:00
Lokathor f1a4c02062 Delete settings.json 2020-03-25 17:39:34 -06:00
Evgeny Rozaliev 5ba37a6b3a TinyVec::from([T]) (#66) 2020-03-17 14:15:39 -06:00
Lokathor 515171daa9 CI update: make each feature run separately 2020-03-15 10:54:25 -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