diff --git a/src/rangedict.rs b/src/rangedict.rs index bb09282d037f9721bf613f212c0f3addbad2bb53..5e83df327498a8637b4ac155759f91a32b867212 100644 --- a/src/rangedict.rs +++ b/src/rangedict.rs @@ -3,7 +3,7 @@ use std::collections::BTreeMap; use thiserror::Error; /// Error type for [`RangeDict`] -#[derive(Error, Debug, PartialEq)] +#[derive(Clone, Error, Debug, PartialEq)] pub enum RangeDictError { /// Used when an invalid range is provided (e.g. End is before start). #[error("Invalid range provided")] @@ -20,7 +20,7 @@ pub enum RangeDictError { /// Powereded by a BTreeMap under the hood. /// /// Note: Ranges are inclusive. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct RangeDict<RK: Ord + Copy, V> { ranges: BTreeMap<RK, (RK, V)>, // Key: start of range, Value: (end, associated value) } diff --git a/src/rangeset.rs b/src/rangeset.rs index 2c5429170fb1a202d9ac10a2de9ccaf0974c3c67..af804ff808bfb268412b564e563c607feb42c8f8 100644 --- a/src/rangeset.rs +++ b/src/rangeset.rs @@ -3,7 +3,7 @@ use std::collections::BTreeMap; use thiserror::Error; /// Error type for [`RangeSet`] -#[derive(Error, Debug, PartialEq)] +#[derive(Clone, Error, Debug, PartialEq)] pub enum RangeSetError { /// Used when an invalid range is provided (e.g. End is before start). #[error("Invalid range provided")] @@ -14,7 +14,7 @@ pub enum RangeSetError { } /// A set of non-overlapping ranges. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct RangeSet<RK: Ord + Copy> { ranges: BTreeMap<RK, RK>, // Maps start -> end }