]> git.mikk.net Git - mtbl-rs/commitdiff
iter: IterBox -> IterCell, private struct
authorChris Mikkelson <cmikk@fsi.io>
Sun, 7 Apr 2024 18:37:03 +0000 (13:37 -0500)
committerChris Mikkelson <cmikk@fsi.io>
Sun, 7 Apr 2024 18:37:03 +0000 (13:37 -0500)
src/iter.rs

index d13894877b5cab27bbbf01bf5512836e5a25150f..c774aa8dc957407ef03504cde325455f844ff447 100644 (file)
@@ -6,11 +6,11 @@ use std::rc::Rc;
 pub trait Iter: Iterator<Item = Entry> + Sized {
     fn seek<T: AsRef<[u8]>>(&mut self, key: T);
 
-    fn wrap_iter<F: FnOnce(IterBox<Self>) -> O, O: Iterator<Item = Entry>>(
+    fn wrap_iter<F: FnOnce(IterCell<Self>) -> O, O: Iterator<Item = Entry>>(
         self,
         f: F,
     ) -> impl Iter {
-        let it = IterBox::new(self);
+        let it = IterCell::new(self);
         WrapIter {
             inner: it.clone(),
             outer: f(it),
@@ -32,36 +32,39 @@ pub trait Iter: Iterator<Item = Entry> + Sized {
 
 // WrapIter
 
-pub struct IterBox<I: Iter>(Rc<RefCell<I>>);
+pub struct IterCell<I: Iter> {
+    ic: Rc<RefCell<I>>
+}
 
-impl<I: Iter> Clone for IterBox<I> {
+impl<I: Iter> Clone for IterCell<I> {
     fn clone(&self) -> Self {
-        IterBox(self.0.clone())
+        IterCell{ic: self.ic.clone()}
     }
 }
 
-impl<I: Iter> IterBox<I> {
-    fn new(i: I) -> IterBox<I> {
-        IterBox(Rc::new(RefCell::new(i)))
+impl<I: Iter> IterCell<I> {
+    fn new(i: I) -> IterCell<I> {
+        IterCell{ic: Rc::new(RefCell::new(i))}
     }
 }
 
-impl<I: Iter> Iterator for IterBox<I> {
+impl<I: Iter> Iterator for IterCell<I> {
     type Item = Entry;
 
     fn next(&mut self) -> Option<Entry> {
-        self.0.borrow_mut().next()
+        self.ic.borrow_mut().next()
     }
 }
 
-impl<I: Iter> Iter for IterBox<I> {
+impl<I: Iter> Iter for IterCell<I> {
     fn seek<T: AsRef<[u8]>>(&mut self, key: T) {
-        self.0.borrow_mut().seek(key);
+        self.ic.borrow_mut().seek(key);
     }
 }
 
+
 struct WrapIter<I: Iter, O: Iterator<Item = Entry>> {
-    inner: IterBox<I>,
+    inner: IterCell<I>,
     outer: O,
 }