ade_traits/
node.rs

1use std::collections::HashSet;
2use std::fmt::Debug;
3
4pub trait NodeTrait: Debug + Clone {
5    fn new(key: u32) -> Self;
6    fn key(&self) -> u32;
7    fn fresh_copy(&self) -> Self;
8    fn predecessors(&self) -> &HashSet<u32>;
9    fn successors(&self) -> &HashSet<u32>;
10    fn add_predecessor(&mut self, key: u32);
11    fn add_successor(&mut self, key: u32);
12    fn remove_predecessor(&mut self, key: u32);
13    fn remove_successor(&mut self, key: u32);
14}