From 248bd029de92d4297ac66dddc2f5f07747a83aa2 Mon Sep 17 00:00:00 2001
From: Eduardo Trujillo <ed@chromabits.com>
Date: Sun, 16 Mar 2025 19:36:13 +0000
Subject: [PATCH] feat: Add Clone derivations

---
 src/rangedict.rs | 4 ++--
 src/rangeset.rs  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/rangedict.rs b/src/rangedict.rs
index bb09282..5e83df3 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 2c54291..af804ff 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
 }
-- 
GitLab