use graph_api_lib::{
EdgeSearch, SupportsEdgeLabelIndex, SupportsVertexHashIndex, SupportsVertexLabelIndex,
VertexSearch,
};
use graph_api_simplegraph::SimpleGraph;
use graph_api_test::{Edge, Vertex, VertexExt, populate_graph};
fn main() {
let mut graph = SimpleGraph::new();
let _refs = populate_graph(&mut graph);
example(graph);
}
fn example<Graph>(graph: Graph)
where
Graph: graph_api_lib::Graph<Vertex = Vertex, Edge = Edge>
+ SupportsVertexHashIndex
+ SupportsVertexLabelIndex
+ SupportsEdgeLabelIndex,
{
let vertex_count = graph.walk().vertices(VertexSearch::scan()).count();
assert!(vertex_count >= 4);
let person_count = graph
.walk()
.vertices(VertexSearch::scan())
.filter_person()
.count();
assert_eq!(person_count, 2);
let project_count = graph.walk().vertices(Vertex::project()).count();
assert_eq!(project_count, 2);
let edge_count = graph
.walk()
.vertices(VertexSearch::scan())
.edges(EdgeSearch::scan())
.count();
assert!(edge_count > 0);
let created_edge_count = graph
.walk()
.vertices(VertexSearch::scan())
.edges(Edge::created())
.count();
assert!(created_edge_count > 0);
}