bee_storage_null/access/
iter.rs

1// Copyright 2021 IOTA Stiftung
2// SPDX-License-Identifier: Apache-2.0
3
4use crate::Storage;
5
6use bee_storage::{access::AsIterator, backend::StorageBackend};
7
8use std::marker::PhantomData;
9
10pub struct StorageIterator<K, V> {
11    marker: PhantomData<(K, V)>,
12}
13
14impl<K, V> StorageIterator<K, V> {
15    fn new() -> Self {
16        Self { marker: PhantomData }
17    }
18}
19
20impl<K, V> Iterator for StorageIterator<K, V> {
21    type Item = Result<(K, V), <Storage as StorageBackend>::Error>;
22
23    fn next(&mut self) -> Option<Self::Item> {
24        None
25    }
26}
27
28impl<'a, K, V> AsIterator<'a, K, V> for Storage {
29    type AsIter = StorageIterator<K, V>;
30
31    fn iter(&'a self) -> Result<Self::AsIter, Self::Error> {
32        Ok(StorageIterator::new())
33    }
34}