Implement two things that were tracked in TODO comments, although only one appears to be in live code: using core::mem::take rather than a reimplementation of it when Rust 1.40 is available.
I changed the #[inline(always)] on the reimplemented take to #[inline] to match what core has, figuring that core would know best what level of inlining hint it should have. On the other hand, do tinyvec's benchmarks indicate that #[inline(always)] helps? If so, I suppose reimplementing the function in all cases may be preferred, in which case this patch would be unnecessary.
This patch, as it is currently written, depends on #165 and is marked as a draft to prevent it from being accidentally merged before #165. If you merge #165, feel free to merge this too regardless of its "draft" state. If you want this patch but not #165, it should not be difficult to rewrite this patch for that case instead.
Implement two things that were tracked in TODO comments, although only one appears to be in live code: using
core::mem::take
rather than a reimplementation of it when Rust 1.40 is available.I changed the
#[inline(always)]
on the reimplementedtake
to#[inline]
to match whatcore
has, figuring thatcore
would know best what level of inlining hint it should have. On the other hand, dotinyvec
's benchmarks indicate that#[inline(always)]
helps? If so, I suppose reimplementing the function in all cases may be preferred, in which case this patch would be unnecessary.This patch, as it is currently written, depends on #165 and is marked as a draft to prevent it from being accidentally merged before #165. If you merge #165, feel free to merge this too regardless of its "draft" state. If you want this patch but not #165, it should not be difficult to rewrite this patch for that case instead.