Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bluss/odds
Odds and ends — collection miscellania. Extra functionality for slices, strings and other things
https://github.com/bluss/odds
Last synced: 17 days ago
JSON representation
Odds and ends — collection miscellania. Extra functionality for slices, strings and other things
- Host: GitHub
- URL: https://github.com/bluss/odds
- Owner: bluss
- License: apache-2.0
- Created: 2015-06-02T15:14:58.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-04-11T17:19:53.000Z (over 4 years ago)
- Last Synced: 2024-05-09T09:30:27.064Z (6 months ago)
- Language: Rust
- Homepage: https://docs.rs/odds/
- Size: 183 KB
- Stars: 21
- Watchers: 6
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE-APACHE
Awesome Lists containing this project
README
odds
====Odds and ends — collection miscellania. Extra functionality related to slices,
strings and other things.Please read the `API documentation here`__
__ https://docs.rs/odds/
|build_status|_ |crates|_
.. |build_status| image:: https://travis-ci.org/bluss/odds.svg
.. _build_status: https://travis-ci.org/bluss/odds.. |crates| image:: http://meritbadge.herokuapp.com/odds
.. _crates: https://crates.io/crates/oddsRecent 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`` to use the trait bound.
- 0.2.17
- Add ``split_aligned_for`` 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 == Fix``
- 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.