33 releases
Uses old Rust 2015
0.4.0 | Apr 11, 2020 |
---|---|
0.3.1 | Nov 27, 2017 |
0.2.26 | Nov 19, 2017 |
0.2.25 | Nov 20, 2016 |
0.2.3 | Jun 12, 2015 |
#36 in No standard library
26,278 downloads per month
Used in 136 crates
(14 directly)
75KB
1.5K
SLoC
odds
Odds and ends — collection miscellania. Extra functionality related to slices, strings and other things.
Please read the API documentation here
Recent Changes
- 0.4.0
- Remove MendSlices
- Remove deprecated items
- Updated rawpointer dependency
- Updated dev-dependencies
- 0.3.1
- Go back to the 0.2.x formulation of the fix function, because the new fancy version relied on a type system detail that has been changed in Rust — closures must not be able to use their own type in their arguments. Fair enough.
- 0.3.0
- Update the fix and Fix closure combinator to not use dynamic dispatch! new formulation was an idea by @talchas
- Implement Error for EncodeUtf8Error by George Burton
- Depend on crate rawslice for its SliceIter.
- More features for SliceIter and SliceCopyIter: access start/end pointer, implement Index.
- Add BlockedIter
- Remove functionality that is unused or directly conflicts with other
new features, for example in std:
- Vec::splice. Use the std splice.
- Deprecate functionality that has been added to std:
- String::insert_str
- str::rep
- ptr_eq, ref_eq: use std::ptr::eq
- Deprecate functionality that has moved:
- get_unchecked, slice_unchecked: use unchecked-index crate instead
- Vec functionality is now opt-in under feature std-vec. String functionality the same under std-string. The crate is now no_std by default.
- Proper license files added to the repo, thanks @raphlinus!
- 0.2.26
- Proper license files by @raphlinus
- 0.2.25
- Add UnalignedIter
- Add SliceCopyIter
- CharStr now implements more traits.
- 0.2.24
- Add CharStr
- 0.2.23
- Add RevSlice, a reversed view of a slice
- Add encode_utf8 for encoding chars
- 0.2.22
- Improve slice's .find() and .rfind() and related methods by explicitly unrolling their search loop.
- 0.2.21
- Add slice::rotate_left to cyclically rotate elements in a slice.
- 0.2.20
- Add SliceFindSplit with .find_split, .rfind_split, .find_split_mut, .rfind_split_mut.
- Add VecFindRemove with .find_remove(), .rfind_remove().
- 0.2.19
- Add trait SliceFind with methods .find(&T), .rfind(&T) for slices.
- Add function vec(iterable) -> Vec
- Add prelude module
- 0.2.18
- Correct split_aligned_for<T> to use the trait bound.
- 0.2.17
- Add split_aligned_for<T> function that splits a byte slice into head and tail slices and a main slice that is a well aligned block of type &[T]. Where T is a pod type like for example u64.
- Add Stride, StrideMut that moved here from itertools
- Add mend_slices iterator extension that moved here from itertools
- 0.2.16
- Add fix function that makes it much easier to use the Fix combinator. Type inference works much better for the closure this way.
- 0.2.15
- Add std::slice::shared_prefix to efficiently compute the shared prefix of two byte slices
- Add str extension methods .char_chunks(n) and char_windows(n) that are iterators that do the char-wise equivalent of slice's chunks and windows iterators.
- 0.2.14
- Fix get_slice to check start <= end as well.
- 0.2.13
- Add extension trait StrSlice with method get_slice that is a slicing method that returns an optional slice.
- 0.2.12
- Add default feature "std". odds uses no_std if you opt out of this feature.
- 0.2.11
- Add type parameter to IndexRange (that defaults to usize, so that it's non-breaking).
- Drop dep on unreachable (provided in a simpler implementation locally).
- 0.2.10
- Fix feature flags when using cargo feature unstable
- 0.2.9
- Add slice_unchecked_mut
- Add ref_slice, ref_slice_mut
- 0.2.8
- Add VecExt::retain_mut
- 0.2.7
- inline(always) on debug_assert_unreachable
- 0.2.6
- Add lifetime bounds for Fix for well-formedness (Rust RFC 1214)
- Add StrExt::is_acceptable_index
- 0.2.5
- Add StringExt::insert_str and VecExt::splice
- 0.2.4
- Add odds::string::StrExt, extensions to &str.
- 0.2.3
- Add default for Fix so that Fix<T> == Fix<T, T>
- 0.2.2
- Add ptr_eq, ref_eq
- 0.2.1
- Add slice_unchecked
- 0.2.0
- Removed Void, see void crate instead.
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.
Dependencies
~36KB