From 97b1dc5ad67db07d1802dd8a2b73c23f1383a500 Mon Sep 17 00:00:00 2001 From: Chris Mikkelson Date: Sun, 28 Apr 2024 20:48:59 -0500 Subject: [PATCH] SeekableVec: relax Copy requirement to Clone --- src/seekable/vec.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/seekable/vec.rs b/src/seekable/vec.rs index 9acb9df..34409f8 100644 --- a/src/seekable/vec.rs +++ b/src/seekable/vec.rs @@ -2,25 +2,25 @@ use crate::seekable::Iter; use crate::Seekable; #[derive(Debug)] -pub struct SeekableVec { +pub struct SeekableVec { off: usize, v: Vec<(K, V)>, } -impl IntoIterator for SeekableVec { +impl IntoIterator for SeekableVec { type Item = (K, V); type IntoIter = Iter; fn into_iter(self) -> Iter { Iter(self) } } -impl Seekable for SeekableVec { +impl Seekable for SeekableVec { type Key = K; type Value = V; fn next(&mut self) -> Option<(K, V)> { if self.off >= self.v.len() { return None; } - let v = self.v[self.off]; + let v = self.v[self.off].clone(); self.off += 1; Some(v) } @@ -34,7 +34,7 @@ impl Seekable for SeekableVec { } } } -impl From> for SeekableVec { +impl From> for SeekableVec { fn from(vec: Vec<(K, V)>) -> SeekableVec { let mut sv = SeekableVec { off: 0, v: vec }; sv.v.sort(); @@ -42,7 +42,7 @@ impl From> for SeekableVec { } } -impl From> for SeekableVec { +impl From> for SeekableVec { fn from(vec: Vec) -> SeekableVec { let mut pv = vec.into_iter().map(|k| (k, ())).collect::>(); pv.sort(); -- 2.50.1