use linkrs_core::StorageError;
#[derive(Debug)]
pub struct VecVertexCursor {
iter: std::vec::IntoIter<linkrs_core::Vertex>,
}
impl VecVertexCursor {
pub fn new(vertices: Vec<linkrs_core::Vertex>) -> Self {
Self {
iter: vertices.into_iter(),
}
}
}
impl crate::cursor::VertexCursor for VecVertexCursor {
fn next_batch(&mut self, batch_size: usize) -> Result<Vec<linkrs_core::Vertex>, StorageError> {
Ok(self.iter.by_ref().take(batch_size).collect())
}
}
#[derive(Debug)]
pub struct VecEdgeCursor {
iter: std::vec::IntoIter<linkrs_core::Edge>,
}
impl VecEdgeCursor {
pub fn new(edges: Vec<linkrs_core::Edge>) -> Self {
Self {
iter: edges.into_iter(),
}
}
}
impl crate::cursor::EdgeCursor for VecEdgeCursor {
fn next_batch(&mut self, batch_size: usize) -> Result<Vec<linkrs_core::Edge>, StorageError> {
Ok(self.iter.by_ref().take(batch_size).collect())
}
}