diff --git a/src/merge_state.rs b/src/merge_state.rs index 4933cc2..af4530e 100644 --- a/src/merge_state.rs +++ b/src/merge_state.rs @@ -1,3 +1,4 @@ +#![allow(clippy::needless_lifetimes)] use crate::iterators::SliceIterator; use binary_merge::{MergeOperation, MergeState}; use core::fmt::Debug; diff --git a/src/range_set.rs b/src/range_set.rs index 8ae5051..f7a6b2b 100644 --- a/src/range_set.rs +++ b/src/range_set.rs @@ -1,4 +1,5 @@ #![deny(missing_docs)] +#![allow(clippy::needless_lifetimes)] //! A set of non-overlapping ranges use crate::merge_state::{ @@ -92,6 +93,12 @@ use { /// Testing is done by some simple smoke tests as well as quickcheck tests of the algebraic properties of the boolean operations. pub struct RangeSet(SmallVec); +impl> Default for RangeSet { + fn default() -> Self { + Self(Default::default()) + } +} + impl> Deref for RangeSet { type Target = RangeSetRef; @@ -249,7 +256,10 @@ impl RangeSetRef { RangeSetRef::new_unchecked_impl(&[]) } - /// Create a new range set reference for a single value + /// Create a new range set reference for a single boundary change + /// + /// This produces a RangeSetRef that goes from off before `value` to on at + /// *and after* `value`. pub const fn single(value: &T) -> &Self { RangeSetRef::new_unchecked_impl(std::slice::from_ref(value)) } @@ -851,7 +861,7 @@ impl> SubAssign for RangeSet { impl> Not for RangeSet { type Output = RangeSet; fn not(mut self) -> Self::Output { - match self.0.get(0) { + match self.0.first() { Some(x) if x.is_min_value() => { self.0.remove(0); }