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}