bluss
f2e9378fd6
FIX: Fix unstable-const-fn feature
2021-03-23 18:22:12 +01:00
bluss
6daae9ae68
FIX: Fix serde feature for const gen
2021-03-23 18:22:12 +01:00
bluss
c9b095f263
FEAT: Port ArrayString to const generics
2021-03-23 18:22:12 +01:00
bluss
5502324b6f
TEST: Fix arrayvec tests for const gen
...
Just search/replace for syntax [T; N] -> T, N and it works.
2021-03-23 18:08:07 +01:00
bluss
02ab4dc796
FEAT: Add new const generics version of ArrayVec (first draft)
2021-03-23 18:08:07 +01:00
bluss
630b81b848
Use ArrayVecImpl in ArrayVec
2021-03-23 17:51:10 +01:00
bluss
a2b2efd379
Add ArrayvecImpl, base implementation of ArrayVec
2021-03-23 17:51:10 +01:00
bluss
c3ef5fe840
MAINT: Move ArrayVec implementation to module
2020-12-17 22:58:27 +01:00
bluss
5ef684920d
MAINT: Fix doc link in crate
2020-12-17 22:56:23 +01:00
Caio
6dccb480f7
Impl TryFrom<fmt::Arguments<'a>> for ArrayString
...
Shortcut for
```
use fmt::Write;
let mut v = Self::new();
v.write_fmt(f).map_err(|e| CapacityError::new(e))?;
```
2020-12-09 20:21:03 -03:00
bluss
0acbba4ceb
Merge pull request #165 from c410-f3r/try
...
impl TryFrom<&'a str> for ArrayString
2020-12-01 02:22:36 +01:00
bluss
50c9ed1abd
Merge pull request #166 from hbina/use_add_instead_of_offset
...
Use `add` instead of `offset` so we don't need to cast to isize.
2020-10-23 18:13:41 +02:00
Hanif Bin Ariffin
92867bb118
Use add instead of offset to avoid casting to isize.
2020-10-21 20:50:00 +08:00
Caio
2267276dbb
impl TryFrom<&'a str> for ArrayString
2020-08-28 08:16:20 -03:00
Mara Bos
fe70c23e94
Add unstable-const-fn feature to make new() functions const.
2020-06-30 20:56:00 +02:00
Paul Kernfeld
675e992741
allow items that implement Clone
2020-05-12 14:57:38 -04:00
Paul Kernfeld
488efd0b3e
impl<A: Array> TryFrom<&[A::Item]> for ArrayVec<A>
...
For issue #106
2020-05-12 12:04:09 -04:00
bluss
902114f62f
Merge pull request #157 from AnderEnder/remove-deprecated-error-description
...
Remove deprecated Error::description
2020-03-15 21:27:36 +01:00
Andrii Radyk
2755d4acb3
remove deprecated Error::description
2020-01-04 00:50:35 +01:00
Ralf Jung
b7fd8d6a22
enable another unwinding test in Miri
2019-12-07 12:13:31 +01:00
bluss
badc118d6a
Merge pull request #143 from nicbn/is_empty
...
Add is_empty method for ArrayVec and ArrayString
2019-11-20 18:59:17 +01:00
bluss
481c8ab683
Merge pull request #144 from RalfJung/miri
...
fix drain_range in Miri and add Miri to CI
2019-11-20 18:57:16 +01:00
Phlosioneer
33d5d2ed96
Fix outdated comment
...
Comment referenced NoDrop which is no longer used.
2019-11-20 02:03:05 -05:00
Ralf Jung
9ed6941a51
run miri on CI
2019-11-16 09:52:18 +01:00
Ralf Jung
9beb753473
fix aliasing in drain_range
2019-11-16 09:52:18 +01:00
nicbn
633c863b0a
Add is_empty method for ArrayVec and ArrayString
2019-11-14 18:58:22 -03:00
bluss
090a5c50cb
FIX: Support uninitalized data in encode_utf8, and update try_push
...
We were using &mut [u8] in encode_utf8, but this is not right according
to the developing unsafe coding guidelines. We need to use raw pointers
to write to possibly uninit memory.
We use a raw pointer form for encode_utf8. It was first attempted to
encapsulate the trusted-to-be-valid raw pointer in a simple { *mut u8,
usize } struct, but the current way of passing ptr and len separately
was the only way to not regress performance.
This impl maintains the same performance in arraystring benches.
Add exhaustive-style tests for encode_utf8
2019-10-09 12:23:44 +02:00
bluss
f665142854
FEAT: Add ArrayString::len
...
This method is no new feature, but it saves us from going through deref
to str to fetch the length.
2019-10-09 12:21:25 +02:00
bluss
fd72321191
FIX: Replace uses of <[T]>::get_unchecked_mut with raw pointer accessor
...
This is a soundness fix w.r.t unsafe coding guidelines.
In some of the instances, `get_unchecked_mut() -> &mut T as *mut T` was
used in places where the element was potentially uninitialized.
This was a problem in push. (Not a problem in IntoIter next/next_back,
where the whole range we're iterating is initialized).
2019-10-09 10:09:07 +02:00
bluss
1483c6d372
FIX: Adjust (mostly remove) inline directives
...
Using the following principles:
- Trivial methods (empty and simple constants) can be inline(always)
- Generic methods don't need any inlining directive at all.
..with the exception of Deref which just seems to be extra important.
- Non-generic items use #[inline] to enable inlining at the
compiler's discretion.
2019-10-09 10:02:20 +02:00
bluss
bf64376f91
API: Deprecate .dispose(), it no longer has a purpose without nodrop
2019-10-09 09:39:49 +02:00
Tobias Bucher
516f1511f6
Add as_{,mut_}ptr functions to ArrayVec, mirroring Vec
...
Fixes #135 .
2019-10-05 21:01:58 +02:00
bluss
70a9ad67af
DOC: Copyedit the Array doc comment again
2019-09-25 14:48:16 +02:00
bluss
babae41d21
DOC: Add safety documentation on Array trait
2019-09-25 14:43:21 +02:00
bluss
cac792e633
API: Rename feature flag serde-1 to serde
...
(Old concerns don't matter anymore, especially with renamed deps.)
2019-09-25 14:34:08 +02:00
bluss
aece292b6c
API: Use RangeBounds for .drain()'s range argument
2019-09-17 21:33:32 +02:00
bluss
062247818a
FIX: Remove unused cfg variable
2019-09-02 22:08:00 +02:00
bluss
e86a32d454
MAINT: Port to Rust 2018 edition
2019-09-02 22:07:30 +02:00
bluss
f952e2c788
MAINT: Use ? operator instead of try!() macro
2019-09-02 22:06:20 +02:00
bluss
470cfd2a48
FIX: Update serde impls for Array changes
2019-09-01 14:48:14 +02:00
bluss
7c33afb3ae
DOC: Update min rust version to Rust 1.36 for MaybeUninit
2019-09-01 14:48:14 +02:00
bluss
8093e8d886
FEAT: Switch to using MaybeUninit for everything
...
Use std::mem::MaybeUninit and stop using nodrop as a fallback.
This means we require Rust 1.36
2019-09-01 14:48:14 +02:00
bluss
f2aad9f9a7
API: Update ArrayExt's methods to expose slices instead of pointers
...
This is a nicer and simpler interface to expose, since the ref to uninit
array to pointer cast is not usable anyway (it's historic now, arrayvec
itself does not use it anymore).
2019-09-01 14:47:44 +02:00
bluss
2a3397995d
FIX: Fix .extend() for ArrayVec with zero-sized type elements
...
The raw pointer walk did not do the right thing for ZST, because when
offsets are zero, the start and end pointer would be the same and the
loop ends before incrementing the length correctly.
2019-09-01 14:07:58 +02:00
bluss
e68c0c7b48
Merge branch '0.4' into master
...
* 0.4:
0.4.11
TEST: Update tests for new MaybeUninit usage
FEAT: Use stable MaybeUninit when we can (feature detected)
2019-07-10 17:51:59 +02:00
bluss
b56c3b78d0
FEAT: Use stable MaybeUninit when we can (feature detected)
2019-07-10 16:40:50 +02:00
Tobias Bucher
76e89544a5
Merge pull request #124 from seanchen1991/master
...
Add semicolon to return statement for consistency
2019-06-21 02:24:36 +02:00
Sean Chen
aab420b2ec
Add semicolon to return statement for consistency
2019-06-20 14:36:13 -07:00
Jan-Erik Rediger
841ca1492b
Fix word duplication in docs
2019-04-22 14:29:08 +02:00
Aleksei Voronov
9207e7442f
Implement FromStr for ArrayString
...
This is very useful for generic code that may want to parse arbitrary
input string into arbitrary other types.
Limitations of the FromStr trait don't allow us to keep the original string slice
inside the CapacityError, unfortunately.
2018-12-23 12:50:29 +01:00