graph_types/
placeholder.rs1#![allow(unused_variables)]
2
3use crate::{
4 edges::typed_edges::IndeterminateEdge, errors::GraphError, Edge, EdgeID, EdgeInsertID, EdgeQuery, GraphEngine, GraphKind,
5 MutableGraph, NodeID,
6};
7
8#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
10pub struct PlaceholderGraph;
11#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
13pub struct PlaceholderNodeIterator<'a> {
14 _phantom: std::marker::PhantomData<&'a PlaceholderGraph>,
15}
16#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
18pub struct PlaceholderEdgeIterator<'a> {
19 _phantom: std::marker::PhantomData<&'a PlaceholderGraph>,
20}
21
22impl GraphEngine for PlaceholderGraph {
23 type NeighborIterator<'a> = PlaceholderNodeIterator<'a>;
24
25 type BridgeIterator<'a> = PlaceholderEdgeIterator<'a>;
26
27 type NodeTraverser<'a> = PlaceholderNodeIterator<'a>;
29 type EdgeTraverser<'a> = PlaceholderNodeIterator<'a>;
30 type BridgeTraverser<'a> = PlaceholderEdgeIterator<'a>;
31
32 fn graph_kind(&self) -> GraphKind {
33 unreachable!()
34 }
35
36 fn get_node(&self, node: NodeID) -> Result<NodeID, GraphError> {
37 unreachable!()
38 }
39
40 fn all_nodes<'a>(&'a self) -> Self::NodeTraverser<'a> {
41 unreachable!()
42 }
43
44 fn all_neighbors<'a>(&'a self, node: NodeID) -> Self::NeighborIterator<'a> {
45 unreachable!()
46 }
47
48 fn get_edge(&self, edge: EdgeID) -> Result<EdgeID, GraphError> {
49 unreachable!()
50 }
51
52 fn all_edges<'a>(&'a self) -> Self::EdgeTraverser<'a> {
53 unreachable!()
54 }
55
56 fn get_bridge(&self, edge: EdgeID) -> Result<IndeterminateEdge, GraphError> {
57 unreachable!()
58 }
59
60 fn get_bridges<'a>(&'a self, from: NodeID, goto: NodeID) -> Self::BridgeIterator<'a> {
61 unreachable!()
62 }
63
64 fn all_bridges<'a>(&'a self) -> Self::BridgeTraverser<'a> {
65 unreachable!()
66 }
67}
68
69impl MutableGraph for PlaceholderGraph {
70 fn insert_node(&mut self, node_id: usize) -> bool {
71 unreachable!()
72 }
73
74 fn create_node(&mut self) -> usize {
75 unreachable!()
76 }
77
78 fn remove_node_with_edges(&mut self, node_id: usize) {
79 unreachable!()
80 }
81
82 fn insert_edge_with_nodes<E: Edge>(&mut self, edge: E) -> EdgeInsertID {
83 unreachable!()
84 }
85
86 fn remove_edge<E>(&mut self, edge: E)
87 where
88 E: Into<EdgeQuery>,
89 {
90 unreachable!()
91 }
92}
93
94impl<'a> Iterator for PlaceholderEdgeIterator<'a> {
95 type Item = IndeterminateEdge;
96
97 fn next(&mut self) -> Option<Self::Item> {
98 unreachable!()
99 }
100}
101impl<'a> DoubleEndedIterator for PlaceholderEdgeIterator<'a> {
102 fn next_back(&mut self) -> Option<Self::Item> {
103 unreachable!()
104 }
105}
106
107impl<'a> Iterator for PlaceholderNodeIterator<'a> {
108 type Item = usize;
109
110 fn next(&mut self) -> Option<Self::Item> {
111 unreachable!()
112 }
113}
114
115impl<'a> DoubleEndedIterator for PlaceholderNodeIterator<'a> {
116 fn next_back(&mut self) -> Option<Self::Item> {
117 unreachable!()
118 }
119}