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}