use crate::{
prelude::*,
traits::{IdType, Property},
EdgeOrder, PropsTriple, Triple,
};
pub trait TripleStoreIntoIter<Id: IdType, NodeProps: Property, EdgeProps: Property>:
TripleStoreError
{
fn into_iter_nodes(
self,
order: EdgeOrder,
) -> (
impl Iterator<Item = Result<(Id, NodeProps), Self::Error>>,
impl Iterator<Item = Result<(Triple<Id>, EdgeProps), Self::Error>>,
);
fn into_iter_vertices(self) -> impl Iterator<Item = Result<(Id, NodeProps), Self::Error>>;
fn into_iter_edges_with_props(
self,
order: EdgeOrder,
) -> impl Iterator<Item = Result<PropsTriple<Id, NodeProps, EdgeProps>, Self::Error>>;
fn into_iter_edges(
self,
order: EdgeOrder,
) -> impl Iterator<Item = Result<(Triple<Id>, EdgeProps), Self::Error>>;
}