pub mod function;
pub mod traits;
pub mod types;
pub use traits::{
EdgeImmediateProtocolObservable, EdgeLinkObservable, EdgeObservable, EdgeObservableRead, NetworkGraphConnectivity,
NetworkGraphTraverse, NetworkGraphUpdate, NetworkGraphView, NetworkGraphWrite, ValueFn,
};
pub use types::*;
pub trait HoprGraphReadApi:
NetworkGraphView<NodeId = Self::HoprNodeId> + NetworkGraphTraverse<NodeId = Self::HoprNodeId>
{
type HoprNodeId: Send;
}
impl<T, N> HoprGraphReadApi for T
where
T: NetworkGraphView<NodeId = N> + NetworkGraphTraverse<NodeId = N>,
N: Send,
{
type HoprNodeId = N;
}
pub trait HoprGraphApi:
NetworkGraphView<NodeId = Self::HoprNodeId>
+ NetworkGraphUpdate
+ NetworkGraphWrite<NodeId = Self::HoprNodeId>
+ NetworkGraphTraverse<NodeId = Self::HoprNodeId>
{
type HoprNodeId: Send;
}
impl<T, N> HoprGraphApi for T
where
T: NetworkGraphView<NodeId = N>
+ NetworkGraphUpdate
+ NetworkGraphWrite<NodeId = N>
+ NetworkGraphTraverse<NodeId = N>,
N: Send,
{
type HoprNodeId = N;
}