feat: Implement Default for traversals
diff --git a/src/visit/traversal.rs b/src/visit/traversal.rs
index e37f359..88782fa 100644
--- a/src/visit/traversal.rs
+++ b/src/visit/traversal.rs
@@ -41,6 +41,18 @@
pub discovered: VM,
}
+impl<N, VM> Default for Dfs<N, VM>
+where
+ VM: Default,
+{
+ fn default() -> Self {
+ Dfs {
+ stack: Vec::new(),
+ discovered: VM::default(),
+ }
+ }
+}
+
impl<N, VM> Dfs<N, VM>
where
N: Copy + PartialEq,
@@ -125,6 +137,19 @@
pub finished: VM,
}
+impl<N, VM> Default for DfsPostOrder<N, VM>
+where
+ VM: Default,
+{
+ fn default() -> Self {
+ DfsPostOrder {
+ stack: Vec::new(),
+ discovered: VM::default(),
+ finished: VM::default(),
+ }
+ }
+}
+
impl<N, VM> DfsPostOrder<N, VM>
where
N: Copy + PartialEq,
@@ -232,6 +257,18 @@
pub discovered: VM,
}
+impl<N, VM> Default for Bfs<N, VM>
+where
+ VM: Default,
+{
+ fn default() -> Self {
+ Bfs {
+ stack: VecDeque::new(),
+ discovered: VM::default(),
+ }
+ }
+}
+
impl<N, VM> Bfs<N, VM>
where
N: Copy + PartialEq,
@@ -279,6 +316,18 @@
ordered: VM,
}
+impl<N, VM> Default for Topo<N, VM>
+where
+ VM: Default,
+{
+ fn default() -> Self {
+ Topo {
+ tovisit: Vec::new(),
+ ordered: VM::default(),
+ }
+ }
+}
+
impl<N, VM> Topo<N, VM>
where
N: Copy + PartialEq,