Merge pull request #152 from Luro02/readme
add readme.md and move changelog to a separate file
This commit is contained in:
+223
@@ -0,0 +1,223 @@
|
||||
Recent Changes (arrayvec)
|
||||
-------------------------
|
||||
|
||||
- 0.5.1
|
||||
|
||||
- Add `as_ptr`, `as_mut_ptr` accessors directly on the `ArrayVec` by @tbu-
|
||||
(matches the same addition to `Vec` which happened in Rust 1.37).
|
||||
- Add method `ArrayString::len` (now available directly, not just through deref to str).
|
||||
- Use raw pointers instead of `&mut [u8]` for encoding chars into `ArrayString`
|
||||
(uninit best practice fix).
|
||||
- Use raw pointers instead of `get_unchecked_mut` where the target may be
|
||||
uninitialized everywhere relevant in the ArrayVec implementation
|
||||
(uninit best practice fix).
|
||||
- Changed inline hints on many methods, mainly removing inline hints
|
||||
- `ArrayVec::dispose` is now deprecated (it has no purpose anymore)
|
||||
|
||||
- 0.4.12
|
||||
|
||||
- Use raw pointers instead of `get_unchecked_mut` where the target may be
|
||||
uninitialized everywhere relevant in the ArrayVec implementation.
|
||||
|
||||
- 0.5.0
|
||||
|
||||
- Use `MaybeUninit` (now unconditionally) in the implementation of
|
||||
`ArrayVec`
|
||||
- Use `MaybeUninit` (now unconditionally) in the implementation of
|
||||
`ArrayString`
|
||||
- The crate feature for serde serialization is now named `serde`.
|
||||
- Updated the `Array` trait interface, and it is now easier to use for
|
||||
users outside the crate.
|
||||
- Add `FromStr` impl for `ArrayString` by @despawnerer
|
||||
- Add method `try_extend_from_slice` to `ArrayVec`, which is always
|
||||
effecient by @Thomasdezeeuw.
|
||||
- Add method `remaining_capacity` by @Thomasdezeeuw
|
||||
- Improve performance of the `extend` method.
|
||||
- The index type of zero capacity vectors is now itself zero size, by
|
||||
@clarfon
|
||||
- Use `drop_in_place` for truncate and clear methods. This affects drop order
|
||||
and resume from panic during drop.
|
||||
- Use Rust 2018 edition for the implementation
|
||||
- Require Rust 1.36 or later, for the unconditional `MaybeUninit`
|
||||
improvements.
|
||||
|
||||
- 0.4.11
|
||||
|
||||
- In Rust 1.36 or later, use newly stable `MaybeUninit`. This extends the
|
||||
soundness work introduced in 0.4.9, we are finally able to use this in
|
||||
stable. We use feature detection (build script) to enable this at build
|
||||
time.
|
||||
|
||||
- 0.4.10
|
||||
|
||||
- Use `repr(C)` in the `union` version that was introduced in 0.4.9, to
|
||||
allay some soundness concerns.
|
||||
|
||||
- 0.4.9
|
||||
|
||||
- Use `union` in the implementation on when this is detected to be supported
|
||||
(nightly only for now). This is a better solution for treating uninitialized
|
||||
regions correctly, and we'll use it in stable Rust as soon as we are able.
|
||||
When this is enabled, the `ArrayVec` has no space overhead in its memory
|
||||
layout, although the size of the vec should not be relied upon. (See [#114](https://github.com/bluss/arrayvec/pull/114))
|
||||
- `ArrayString` updated to not use uninitialized memory, it instead zeros its
|
||||
backing array. This will be refined in the next version, since we
|
||||
need to make changes to the user visible API.
|
||||
- The `use_union` feature now does nothing (like its documentation foretold).
|
||||
|
||||
|
||||
- 0.4.8
|
||||
|
||||
- Implement Clone and Debug for `IntoIter` by @clarcharr
|
||||
- Add more array sizes under crate features. These cover all in the range
|
||||
up to 128 and 129 to 255 respectively (we have a few of those by default):
|
||||
|
||||
- `array-size-33-128`
|
||||
- `array-size-129-255`
|
||||
|
||||
- 0.4.7
|
||||
|
||||
- Fix future compat warning about raw pointer casts
|
||||
- Use `drop_in_place` when dropping the arrayvec by-value iterator
|
||||
- Decrease mininum Rust version (see docs) by @jeehoonkang
|
||||
|
||||
- 0.3.25
|
||||
|
||||
- Fix future compat warning about raw pointer casts
|
||||
|
||||
- 0.4.6
|
||||
|
||||
- Fix compilation on 16-bit targets. This means, the 65536 array size is not
|
||||
included on these targets.
|
||||
|
||||
- 0.3.24
|
||||
|
||||
- Fix compilation on 16-bit targets. This means, the 65536 array size is not
|
||||
included on these targets.
|
||||
- Fix license files so that they are both included (was fixed in 0.4 before)
|
||||
|
||||
- 0.4.5
|
||||
|
||||
- Add methods to `ArrayString` by @DenialAdams:
|
||||
|
||||
- `.pop() -> Option<char>`
|
||||
- `.truncate(new_len)`
|
||||
- `.remove(index) -> char`
|
||||
|
||||
- Remove dependency on crate odds
|
||||
- Document debug assertions in unsafe methods better
|
||||
|
||||
- 0.4.4
|
||||
|
||||
- Add method `ArrayVec::truncate()` by @niklasf
|
||||
|
||||
- 0.4.3
|
||||
|
||||
- Improve performance for `ArrayVec::extend` with a lower level
|
||||
implementation (#74)
|
||||
- Small cleanup in dependencies (use no std for crates where we don't need more)
|
||||
|
||||
- 0.4.2
|
||||
|
||||
- Add constructor method `new` to `CapacityError`.
|
||||
|
||||
- 0.4.1
|
||||
|
||||
- Add `Default` impl to `ArrayString` by @tbu-
|
||||
|
||||
- 0.4.0
|
||||
|
||||
- Reformed signatures and error handling by @bluss and @tbu-:
|
||||
|
||||
- `ArrayVec`'s `push, insert, remove, swap_remove` now match `Vec`'s
|
||||
corresponding signature and panic on capacity errors where applicable.
|
||||
- Add fallible methods `try_push, insert` and checked methods
|
||||
`pop_at, swap_pop`.
|
||||
- Similar changes to `ArrayString`'s push methods.
|
||||
|
||||
- Use a local version of the `RangeArgument` trait
|
||||
- Add array sizes 50, 150, 200 by @daboross
|
||||
- Support serde 1.0 by @daboross
|
||||
- New method `.push_unchecked()` by @niklasf
|
||||
- `ArrayString` implements `PartialOrd, Ord` by @tbu-
|
||||
- Require Rust 1.14
|
||||
- crate feature `use_generic_array` was dropped.
|
||||
|
||||
- 0.3.23
|
||||
|
||||
- Implement `PartialOrd, Ord` as well as `PartialOrd<str>` for
|
||||
`ArrayString`.
|
||||
|
||||
- 0.3.22
|
||||
|
||||
- Implement `Array` for the 65536 size
|
||||
|
||||
- 0.3.21
|
||||
|
||||
- Use `encode_utf8` from crate odds
|
||||
- Add constructor `ArrayString::from_byte_string`
|
||||
|
||||
- 0.3.20
|
||||
|
||||
- Simplify and speed up `ArrayString`’s `.push(char)`-
|
||||
|
||||
- 0.3.19
|
||||
|
||||
- Add new crate feature `use_generic_array` which allows using their
|
||||
`GenericArray` just like a regular fixed size array for the storage
|
||||
of an `ArrayVec`.
|
||||
|
||||
- 0.3.18
|
||||
|
||||
- Fix bounds check in `ArrayVec::insert`!
|
||||
It would be buggy if `self.len() < index < self.capacity()`. Take note of
|
||||
the push out behavior specified in the docs.
|
||||
|
||||
- 0.3.17
|
||||
|
||||
- Added crate feature `use_union` which forwards to the nodrop crate feature
|
||||
- Added methods `.is_full()` to `ArrayVec` and `ArrayString`.
|
||||
|
||||
- 0.3.16
|
||||
|
||||
- Added method `.retain()` to `ArrayVec`.
|
||||
- Added methods `.as_slice(), .as_mut_slice()` to `ArrayVec` and `.as_str()`
|
||||
to `ArrayString`.
|
||||
|
||||
- 0.3.15
|
||||
|
||||
- Add feature std, which you can opt out of to use `no_std` (requires Rust 1.6
|
||||
to opt out).
|
||||
- Implement `Clone::clone_from` for ArrayVec and ArrayString
|
||||
|
||||
- 0.3.14
|
||||
|
||||
- Add `ArrayString::from(&str)`
|
||||
|
||||
- 0.3.13
|
||||
|
||||
- Added `DerefMut` impl for `ArrayString`.
|
||||
- Added method `.simplify()` to drop the element for `CapacityError`.
|
||||
- Added method `.dispose()` to `ArrayVec`
|
||||
|
||||
- 0.3.12
|
||||
|
||||
- Added ArrayString, a fixed capacity analogy of String
|
||||
|
||||
- 0.3.11
|
||||
|
||||
- Added trait impls Default, PartialOrd, Ord, Write for ArrayVec
|
||||
|
||||
- 0.3.10
|
||||
|
||||
- Go back to using external NoDrop, fixing a panic safety bug (issue #3)
|
||||
|
||||
- 0.3.8
|
||||
|
||||
- Inline the non-dropping logic to remove one drop flag in the
|
||||
ArrayVec representation.
|
||||
|
||||
- 0.3.7
|
||||
|
||||
- Added method .into_inner()
|
||||
- Added unsafe method .set_len()
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
arrayvec
|
||||
========
|
||||
[](https://crates.io/crates/arrayvec)
|
||||
[](https://crates.io/crates/nodrop)
|
||||
[](https://docs.rs/arrayvec)
|
||||
[](https://travis-ci.org/sile/hls_m3u8)
|
||||
[](LICENSE-APACHE)
|
||||
OR
|
||||
[](LICENSE)
|
||||
|
||||
A vector with fixed capacity.
|
||||
|
||||
Please read the [`API documentation here`](https://docs.rs/arrayvec)
|
||||
|
||||
# License
|
||||
|
||||
Dual-licensed to be compatible with the Rust project.
|
||||
|
||||
Licensed under the Apache License, Version 2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0 or the MIT license
|
||||
http://opensource.org/licenses/MIT, at your
|
||||
option. This file may not be copied, modified, or distributed
|
||||
except according to those terms.
|
||||
-259
@@ -1,259 +0,0 @@
|
||||
|
||||
arrayvec
|
||||
========
|
||||
|
||||
A vector with fixed capacity.
|
||||
|
||||
Please read the `API documentation here`__
|
||||
|
||||
__ https://docs.rs/arrayvec
|
||||
|
||||
|build_status|_ |crates|_ |crates2|_
|
||||
|
||||
.. |build_status| image:: https://travis-ci.org/bluss/arrayvec.svg
|
||||
.. _build_status: https://travis-ci.org/bluss/arrayvec
|
||||
|
||||
.. |crates| image:: http://meritbadge.herokuapp.com/arrayvec
|
||||
.. _crates: https://crates.io/crates/arrayvec
|
||||
|
||||
.. |crates2| image:: http://meritbadge.herokuapp.com/nodrop
|
||||
.. _crates2: https://crates.io/crates/nodrop
|
||||
|
||||
Recent Changes (arrayvec)
|
||||
-------------------------
|
||||
|
||||
- 0.5.1
|
||||
|
||||
- Add ``as_ptr``, ``as_mut_ptr`` accessors directly on the ``ArrayVec`` by @tbu-
|
||||
(matches the same addition to ``Vec`` which happened in Rust 1.37).
|
||||
- Add method ``ArrayString::len`` (now available directly, not just through deref to str).
|
||||
- Use raw pointers instead of ``&mut [u8]`` for encoding chars into ``ArrayString``
|
||||
(uninit best practice fix).
|
||||
- Use raw pointers instead of ``get_unchecked_mut`` where the target may be
|
||||
uninitialized everywhere relevant in the ArrayVec implementation
|
||||
(uninit best practice fix).
|
||||
- Changed inline hints on many methods, mainly removing inline hints
|
||||
- ``ArrayVec::dispose`` is now deprecated (it has no purpose anymore)
|
||||
|
||||
- 0.4.12
|
||||
|
||||
- Use raw pointers instead of ``get_unchecked_mut`` where the target may be
|
||||
uninitialized everywhere relevant in the ArrayVec implementation.
|
||||
|
||||
- 0.5.0
|
||||
|
||||
- Use ``MaybeUninit`` (now unconditionally) in the implementation of
|
||||
``ArrayVec``
|
||||
- Use ``MaybeUninit`` (now unconditionally) in the implementation of
|
||||
``ArrayString``
|
||||
- The crate feature for serde serialization is now named ``serde``.
|
||||
- Updated the ``Array`` trait interface, and it is now easier to use for
|
||||
users outside the crate.
|
||||
- Add ``FromStr`` impl for ``ArrayString`` by @despawnerer
|
||||
- Add method ``try_extend_from_slice`` to ``ArrayVec``, which is always
|
||||
effecient by @Thomasdezeeuw.
|
||||
- Add method ``remaining_capacity`` by @Thomasdezeeuw
|
||||
- Improve performance of the ``extend`` method.
|
||||
- The index type of zero capacity vectors is now itself zero size, by
|
||||
@clarfon
|
||||
- Use ``drop_in_place`` for truncate and clear methods. This affects drop order
|
||||
and resume from panic during drop.
|
||||
- Use Rust 2018 edition for the implementation
|
||||
- Require Rust 1.36 or later, for the unconditional ``MaybeUninit``
|
||||
improvements.
|
||||
|
||||
- 0.4.11
|
||||
|
||||
- In Rust 1.36 or later, use newly stable MaybeUninit. This extends the
|
||||
soundness work introduced in 0.4.9, we are finally able to use this in
|
||||
stable. We use feature detection (build script) to enable this at build
|
||||
time.
|
||||
|
||||
- 0.4.10
|
||||
|
||||
- Use ``repr(C)`` in the ``union`` version that was introduced in 0.4.9, to
|
||||
allay some soundness concerns.
|
||||
|
||||
- 0.4.9
|
||||
|
||||
- Use ``union`` in the implementation on when this is detected to be supported
|
||||
(nightly only for now). This is a better solution for treating uninitialized
|
||||
regions correctly, and we'll use it in stable Rust as soon as we are able.
|
||||
When this is enabled, the ``ArrayVec`` has no space overhead in its memory
|
||||
layout, although the size of the vec should not be relied upon. (See `#114`_)
|
||||
- ``ArrayString`` updated to not use uninitialized memory, it instead zeros its
|
||||
backing array. This will be refined in the next version, since we
|
||||
need to make changes to the user visible API.
|
||||
- The ``use_union`` feature now does nothing (like its documentation foretold).
|
||||
|
||||
.. _`#114`: https://github.com/bluss/arrayvec/pull/114
|
||||
|
||||
- 0.4.8
|
||||
|
||||
- Implement Clone and Debug for ``IntoIter`` by @clarcharr
|
||||
- Add more array sizes under crate features. These cover all in the range
|
||||
up to 128 and 129 to 255 respectively (we have a few of those by default):
|
||||
|
||||
- ``array-size-33-128``
|
||||
- ``array-size-129-255``
|
||||
|
||||
- 0.4.7
|
||||
|
||||
- Fix future compat warning about raw pointer casts
|
||||
- Use ``drop_in_place`` when dropping the arrayvec by-value iterator
|
||||
- Decrease mininum Rust version (see docs) by @jeehoonkang
|
||||
|
||||
- 0.3.25
|
||||
|
||||
- Fix future compat warning about raw pointer casts
|
||||
|
||||
- 0.4.6
|
||||
|
||||
- Fix compilation on 16-bit targets. This means, the 65536 array size is not
|
||||
included on these targets.
|
||||
|
||||
- 0.3.24
|
||||
|
||||
- Fix compilation on 16-bit targets. This means, the 65536 array size is not
|
||||
included on these targets.
|
||||
- Fix license files so that they are both included (was fixed in 0.4 before)
|
||||
|
||||
- 0.4.5
|
||||
|
||||
- Add methods to ``ArrayString`` by @DenialAdams:
|
||||
|
||||
- ``.pop() -> Option<char>``
|
||||
- ``.truncate(new_len)``
|
||||
- ``.remove(index) -> char``
|
||||
|
||||
- Remove dependency on crate odds
|
||||
- Document debug assertions in unsafe methods better
|
||||
|
||||
- 0.4.4
|
||||
|
||||
- Add method ``ArrayVec::truncate()`` by @niklasf
|
||||
|
||||
- 0.4.3
|
||||
|
||||
- Improve performance for ``ArrayVec::extend`` with a lower level
|
||||
implementation (#74)
|
||||
- Small cleanup in dependencies (use no std for crates where we don't need more)
|
||||
|
||||
- 0.4.2
|
||||
|
||||
- Add constructor method ``new`` to ``CapacityError``.
|
||||
|
||||
- 0.4.1
|
||||
|
||||
- Add ``Default`` impl to ``ArrayString`` by @tbu-
|
||||
|
||||
- 0.4.0
|
||||
|
||||
- Reformed signatures and error handling by @bluss and @tbu-:
|
||||
|
||||
- ``ArrayVec``'s ``push, insert, remove, swap_remove`` now match ``Vec``'s
|
||||
corresponding signature and panic on capacity errors where applicable.
|
||||
- Add fallible methods ``try_push, insert`` and checked methods
|
||||
``pop_at, swap_pop``.
|
||||
- Similar changes to ``ArrayString``'s push methods.
|
||||
|
||||
- Use a local version of the ``RangeArgument`` trait
|
||||
- Add array sizes 50, 150, 200 by @daboross
|
||||
- Support serde 1.0 by @daboross
|
||||
- New method ``.push_unchecked()`` by @niklasf
|
||||
- ``ArrayString`` implements ``PartialOrd, Ord`` by @tbu-
|
||||
- Require Rust 1.14
|
||||
- crate feature ``use_generic_array`` was dropped.
|
||||
|
||||
- 0.3.23
|
||||
|
||||
- Implement ``PartialOrd, Ord`` as well as ``PartialOrd<str>`` for
|
||||
``ArrayString``.
|
||||
|
||||
- 0.3.22
|
||||
|
||||
- Implement ``Array`` for the 65536 size
|
||||
|
||||
- 0.3.21
|
||||
|
||||
- Use ``encode_utf8`` from crate odds
|
||||
- Add constructor ``ArrayString::from_byte_string``
|
||||
|
||||
- 0.3.20
|
||||
|
||||
- Simplify and speed up ``ArrayString``’s ``.push(char)``-
|
||||
|
||||
- 0.3.19
|
||||
|
||||
- Add new crate feature ``use_generic_array`` which allows using their
|
||||
``GenericArray`` just like a regular fixed size array for the storage
|
||||
of an ``ArrayVec``.
|
||||
|
||||
- 0.3.18
|
||||
|
||||
- Fix bounds check in ``ArrayVec::insert``!
|
||||
It would be buggy if ``self.len() < index < self.capacity()``. Take note of
|
||||
the push out behavior specified in the docs.
|
||||
|
||||
- 0.3.17
|
||||
|
||||
- Added crate feature ``use_union`` which forwards to the nodrop crate feature
|
||||
- Added methods ``.is_full()`` to ``ArrayVec`` and ``ArrayString``.
|
||||
|
||||
- 0.3.16
|
||||
|
||||
- Added method ``.retain()`` to ``ArrayVec``.
|
||||
- Added methods ``.as_slice(), .as_mut_slice()`` to ``ArrayVec`` and ``.as_str()``
|
||||
to ``ArrayString``.
|
||||
|
||||
- 0.3.15
|
||||
|
||||
- Add feature std, which you can opt out of to use ``no_std`` (requires Rust 1.6
|
||||
to opt out).
|
||||
- Implement ``Clone::clone_from`` for ArrayVec and ArrayString
|
||||
|
||||
- 0.3.14
|
||||
|
||||
- Add ``ArrayString::from(&str)``
|
||||
|
||||
- 0.3.13
|
||||
|
||||
- Added ``DerefMut`` impl for ``ArrayString``.
|
||||
- Added method ``.simplify()`` to drop the element for ``CapacityError``.
|
||||
- Added method ``.dispose()`` to ``ArrayVec``
|
||||
|
||||
- 0.3.12
|
||||
|
||||
- Added ArrayString, a fixed capacity analogy of String
|
||||
|
||||
- 0.3.11
|
||||
|
||||
- Added trait impls Default, PartialOrd, Ord, Write for ArrayVec
|
||||
|
||||
- 0.3.10
|
||||
|
||||
- Go back to using external NoDrop, fixing a panic safety bug (issue #3)
|
||||
|
||||
- 0.3.8
|
||||
|
||||
- Inline the non-dropping logic to remove one drop flag in the
|
||||
ArrayVec representation.
|
||||
|
||||
- 0.3.7
|
||||
|
||||
- Added method .into_inner()
|
||||
- Added unsafe method .set_len()
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
Dual-licensed to be compatible with the Rust project.
|
||||
|
||||
Licensed under the Apache License, Version 2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0 or the MIT license
|
||||
http://opensource.org/licenses/MIT, at your
|
||||
option. This file may not be copied, modified, or distributed
|
||||
except according to those terms.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user