graph_types/
placeholder.rs

1#![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/// A placeholder graph engine.
9#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
10pub struct PlaceholderGraph;
11/// A placeholder node iterator.
12#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
13pub struct PlaceholderNodeIterator<'a> {
14    _phantom: std::marker::PhantomData<&'a PlaceholderGraph>,
15}
16/// A placeholder edge iterator.
17#[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    /// A placeholder node iterator.
28    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}