Skip to content

Commit be303d5

Browse files
authored
Merge pull request #11 from rklaehn/add-default
Add default instance for RangeSet
2 parents 8dd4dea + eb7c918 commit be303d5

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/merge_state.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#![allow(clippy::needless_lifetimes)]
12
use crate::iterators::SliceIterator;
23
use binary_merge::{MergeOperation, MergeState};
34
use core::fmt::Debug;

src/range_set.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#![deny(missing_docs)]
2+
#![allow(clippy::needless_lifetimes)]
23

34
//! A set of non-overlapping ranges
45
use crate::merge_state::{
@@ -92,6 +93,12 @@ use {
9293
/// Testing is done by some simple smoke tests as well as quickcheck tests of the algebraic properties of the boolean operations.
9394
pub struct RangeSet<A: Array>(SmallVec<A>);
9495

96+
impl<T, A: Array<Item = T>> Default for RangeSet<A> {
97+
fn default() -> Self {
98+
Self(Default::default())
99+
}
100+
}
101+
95102
impl<T, A: Array<Item = T>> Deref for RangeSet<A> {
96103
type Target = RangeSetRef<T>;
97104

@@ -249,7 +256,10 @@ impl<T> RangeSetRef<T> {
249256
RangeSetRef::new_unchecked_impl(&[])
250257
}
251258

252-
/// Create a new range set reference for a single value
259+
/// Create a new range set reference for a single boundary change
260+
///
261+
/// This produces a RangeSetRef that goes from off before `value` to on at
262+
/// *and after* `value`.
253263
pub const fn single(value: &T) -> &Self {
254264
RangeSetRef::new_unchecked_impl(std::slice::from_ref(value))
255265
}
@@ -851,7 +861,7 @@ impl<T: Ord, A: Array<Item = T>> SubAssign for RangeSet<A> {
851861
impl<T: RangeSetEntry + Clone, A: Array<Item = T>> Not for RangeSet<A> {
852862
type Output = RangeSet<A>;
853863
fn not(mut self) -> Self::Output {
854-
match self.0.get(0) {
864+
match self.0.first() {
855865
Some(x) if x.is_min_value() => {
856866
self.0.remove(0);
857867
}

0 commit comments

Comments
 (0)