All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Breaking Change: Relevant methods now take references rather than owned point and range types.
Copyis no longer a requirement for point and range types, onlyCloneis now needed.
- Updated all dependencies to their latest versions.
- Added the
ZosditMap::remove_last_value_at_point()method similar to the existingZosditMap::get_last_value_at_point()method.
- Some spelling errors corrected
- Added the
Gqditdata-structure with all the proper documentation and examples for all its methods - Added a new table to the readme/top-level module docs for describing all the different data-structures in the crate for comparison with one another
- Added another method to
InclusiveInterval,contains_interval()
- Renamed
contains_entire_interval()methods tocontains_interval()to matchInclusiveInterval::contains_interval() - Renamed
InclusiveInterval::contains()toInclusiveInterval::contains_point()to match the newInclusiveInterval::contains_interval()method serde's Serialize and Deserialize implementations are now optional via a "serde" feature which is documented in the features section of the readme/top-level module docs
- Added a new data-structure the [
ZosditMap] for zero-overlap sequential discrete interval trees
- Many of the methods of the
InclusiveIntervaltrait have been reworked and they have all been given documentation examples - Renamed methods to match the std
BTreeMapmethodsNoditMap::last_entry()->NoditMap::last_key_value()NoditMap::first_entry()->NoditMap::first_key_value()NoditMap::get_entry_at_point()->NoditMap::get_key_value_at_point()
- The library has been relicensed under the MIT license to better fit within the rust library ecosystem
- Support for stable rust (at least stable
v1.75.0) added by removing/refactoring unused nightly features.
- Added a missing implementation of
DiscreteFiniteforusize, #54 - Added implementations for:
From<InclusiveInterval> for std::ops::RangeFrom<std::ops::Range> for InclusiveIntervalFrom<InclusiveInterval> for std::ops::RangeInclusiveFrom<std::ops::RangeInclusive> for InclusiveInterval
InclusiveIntervalhas now been given generic constructors and proper documentation for use by end-users, #56insert_overwrite()now returns the cut entries, #51- Renamed
gaps()togaps_trimmed()and added agaps_untrimmed()method - Mass replaced renamed from the word "range" to the word "interval" all code items, docs.
- The crate has been renamed from
discrete_range_maptonodit - The
DiscreteRangeMapis nowNoditMapand theDiscreteRangeSetis nowNoditSet
- The now generic constructors for
InclusiveIntervalwill all now panic on creation of an invalid interval to propagate errors earlier in users' code for a better debugging experience. - Documentation has been heavily worked to make it better and more up to date with more examples
- Documentation now added to every item in the crate by
enforcing
missing_docs = "deny"
OverlapErrornow returns the value that was attempted to be inserted to match up withBTreeMapand otherstdrust insert methods, #43
- Added intersection and translation methods to the
InclusiveRangetrait, #46
no_stdis now supported
- Refactored trait bounds into single
PointTypeandRangeTypemarker traits
- Added a
from_iter_stric()method to the map and set.
- Updated dependencies to fix a compile error
- Added new
InclusiveRangetrait - Renamed lots of items to make them more consistent
- Removed lots of unnecessary bounds for many functions and the Serialize trait
- Renamed
DiscreteFiniteBoundstoIntervaland gave it some utility functions
- Improved the performance of
remove_overlapping()and all functions which use it internally in #44
- The crate was renamed from
range_bounds_maptodiscrete_range_mapin #41 - The behaviour of the crate was switched from continuous to discrete intervals in #41
- The behaviour of the crate was switched from possibly unbounded intervals to assumed Finite intervals in #41
- Made
gaps()return aDoubleEndedIterator, #32
- Changed return type of
get_entry_at_point()andget_at_point()to aResultinstead of anOptionto return the gap interval if no entry is found, #31
- Added
insert_merge_touching_if_values_equal()method toRangeBoundsMap, #30
- Added
get_at_point()back toRangeBoundsSet
- Added basic trait derives to the set
- Renamed all instances of the word
coalescewith the wordmergein #12 - Renamed
overwritetoinsert_overwritein #13 - Renamed
insert_platonictoinsert_strictin #14 - Reverted "Remove Implementations of
FromIteratorand otherFrom<other_collection>traits" in #17 - BTree Monstrousity Implementation in #26
- Better Panic Messages in #28
- Added
Panicssections to the documentation where applicable in #15 - Added
append_*functions for all the associatedinsert_*functions in #19 - Added _mut methods in #27
- Removed Implementations of
FromIteratorand otherFrom<other_collection>traits in #16 - Removed Implementations of
FromIteratorand otherFrom<other_collection>traits (PR 2) in #18
- Added method
trimmed_overlapping()in #2