pub trait DeviceProxyInterface: Send + Sync {
type SetNodesBandwidthResponseFut: Future<Output = Result<DeviceSetNodesBandwidthResult, Error>> + Send;
type GetNodeGraphResponseFut: Future<Output = Result<(Vec<Node>, Vec<Edge>), Error>> + Send;
type GetPathEndpointsResponseFut: Future<Output = Result<Vec<PathEndpoints>, Error>> + Send;
// Required methods
fn set_nodes_bandwidth(
&self,
nodes: &[NodeBandwidth],
) -> Self::SetNodesBandwidthResponseFut;
fn get_node_graph(&self) -> Self::GetNodeGraphResponseFut;
fn get_path_endpoints(&self) -> Self::GetPathEndpointsResponseFut;
}