diff --git a/src/table/iterator_wrapper.rs b/src/table/iterator_wrapper.rs new file mode 100644 index 0000000000000000000000000000000000000000..e9f849327424f6eba489109f08bf2557e3fd2259 --- /dev/null +++ b/src/table/iterator_wrapper.rs @@ -0,0 +1,3 @@ +pub struct IteratorWrapper { + +} \ No newline at end of file diff --git a/src/table/mod.rs b/src/table/mod.rs index d0e015761c328ff1877f66324062a402b3a2ee33..ade478fc4045f8c85b832af1adda4f74d428e097 100644 --- a/src/table/mod.rs +++ b/src/table/mod.rs @@ -4,4 +4,5 @@ pub mod filter_block; pub mod format; mod format_test; pub(crate) mod ss_table; -mod ss_table_test; \ No newline at end of file +mod ss_table_test; +mod iterator_wrapper; \ No newline at end of file diff --git a/src/traits/iterator.rs b/src/traits/iterator.rs index 3e327f3aea7d35f34f0dac3ec5c7aabf0bc2579f..7717574de82560f01aac082d4790953581d0b93c 100644 --- a/src/traits/iterator.rs +++ b/src/traits/iterator.rs @@ -1,21 +1,110 @@ use crate::util::slice::Slice; pub trait DataIterator { - + /// 检查当前位置是否有效 + /// + /// # Arguments + /// + /// + /// returns: bool + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn valid(&self) -> bool; - + /// 将迭代器定位到开始位置 + /// + /// # Arguments + /// + /// + /// returns: () + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn seek_to_first(&mut self); - + /// 将迭代器定位到末尾位置 + /// + /// # Arguments + /// + /// + /// returns: () + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn seek_to_last(&mut self); - + /// 将迭代器定位到指定位置 + /// + /// # Arguments + /// + /// * `target`: 迭代器位置 + /// + /// returns: () + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn seek(&mut self, target: &Slice); - + /// 定位到下一个元素 + /// + /// # Arguments + /// + /// + /// returns: () + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn next(&mut self); - + /// 定位到上一个元素 + /// + /// # Arguments + /// + /// + /// returns: () + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn pre(&mut self); - + /// 获取key值 + /// + /// # Arguments + /// + /// + /// returns: Slice + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn key(&self) -> &Slice; - + /// 获取value值 + /// + /// # Arguments + /// + /// + /// returns: Slice + /// + /// # Examples + /// + /// ``` + /// + /// ``` fn value(&self) -> &Slice; }