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.
- 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
Gqdit
data-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
InclusiveInterval
trait have been reworked and they have all been given documentation examples - Renamed methods to match the std
BTreeMap
methodsNoditMap::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
DiscreteFinite
forusize
, #54 - Added implementations for:
From<InclusiveInterval> for std::ops::Range
From<std::ops::Range> for InclusiveInterval
From<InclusiveInterval> for std::ops::RangeInclusive
From<std::ops::RangeInclusive> for InclusiveInterval
InclusiveInterval
has 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_map
tonodit
- The
DiscreteRangeMap
is nowNoditMap
and theDiscreteRangeSet
is nowNoditSet
- The now generic constructors for
InclusiveInterval
will 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"
OverlapError
now returns the value that was attempted to be inserted to match up withBTreeMap
and otherstd
rust insert methods, #43
- Added intersection and translation methods to the
InclusiveRange
trait, #46
no_std
is now supported
- Refactored trait bounds into single
PointType
andRangeType
marker traits
- Added a
from_iter_stric()
method to the map and set.
- Updated dependencies to fix a compile error
- Added new
InclusiveRange
trait - Renamed lots of items to make them more consistent
- Removed lots of unnecessary bounds for many functions and the Serialize trait
- Renamed
DiscreteFiniteBounds
toInterval
and 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_map
todiscrete_range_map
in #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 aResult
instead of anOption
to 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
coalesce
with the wordmerge
in #12 - Renamed
overwrite
toinsert_overwrite
in #13 - Renamed
insert_platonic
toinsert_strict
in #14 - Reverted "Remove Implementations of
FromIterator
and otherFrom<other_collection>
traits" in #17 - BTree Monstrousity Implementation in #26
- Better Panic Messages in #28
- Added
Panics
sections 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
FromIterator
and otherFrom<other_collection>
traits in #16 - Removed Implementations of
FromIterator
and otherFrom<other_collection>
traits (PR 2) in #18
- Added method
trimmed_overlapping()
in #2