1pub trait HyperNode<Idx> {
8 fn index(&self) -> &crate::Index<Idx>;
9}
10
11pub trait HashNode<Idx>: HyperNode<Idx> + core::cmp::Eq + core::hash::Hash {}
14
15pub trait Weighted<Idx>: HyperNode<Idx> {
16 type Data;
17
18 fn weight(&self) -> &Self::Data;
19}
20
21impl<T, Idx> HyperNode<Idx> for T
25where
26 T: crate::Indexable<Idx>,
27{
28 fn index(&self) -> &crate::Index<Idx> {
29 self.index()
30 }
31}
32impl<T, Idx> HashNode<Idx> for T where T: HyperNode<Idx> + core::cmp::Eq + core::hash::Hash {}