spacetimedb_vm/
iterators.rs

1use crate::rel_ops::RelOps;
2use crate::relation::RelValue;
3
4/// Turns an iterator over [`RelValue<'_>`]s into a `RelOps`.
5#[derive(Debug)]
6pub struct RelIter<I> {
7    pub iter: I,
8}
9
10impl<I> RelIter<I> {
11    pub fn new(iter: impl IntoIterator<IntoIter = I>) -> Self {
12        let iter = iter.into_iter();
13        Self { iter }
14    }
15}
16
17impl<'a, I: Iterator<Item = RelValue<'a>>> RelOps<'a> for RelIter<I> {
18    fn next(&mut self) -> Option<RelValue<'a>> {
19        self.iter.next()
20    }
21}