Trait NodeRegistry
pub trait NodeRegistry: Send + Sync {
// Required methods
fn register_node(&mut self, node_info: NodeInfo) -> Result<(), NerveError>;
fn unregister_node(&mut self, node_id: u64) -> Result<(), NerveError>;
fn get_node(&self, node_id: u64) -> Result<Option<NodeInfo>, NerveError>;
fn get_all_nodes(&self) -> Vec<NodeInfo>;
fn get_nodes_by_type(&self, node_type: NodeType) -> Vec<NodeInfo>;
fn node_count(&self) -> usize;
fn statistics(&self) -> NodeStatistics;
}Expand description
Node registry interface
Required Methods§
fn register_node(&mut self, node_info: NodeInfo) -> Result<(), NerveError>
fn register_node(&mut self, node_info: NodeInfo) -> Result<(), NerveError>
Register a node
fn unregister_node(&mut self, node_id: u64) -> Result<(), NerveError>
fn unregister_node(&mut self, node_id: u64) -> Result<(), NerveError>
Unregister a node
fn get_all_nodes(&self) -> Vec<NodeInfo>
fn get_all_nodes(&self) -> Vec<NodeInfo>
Get all nodes
fn get_nodes_by_type(&self, node_type: NodeType) -> Vec<NodeInfo>
fn get_nodes_by_type(&self, node_type: NodeType) -> Vec<NodeInfo>
Get nodes by type
fn node_count(&self) -> usize
fn node_count(&self) -> usize
Get node count
fn statistics(&self) -> NodeStatistics
fn statistics(&self) -> NodeStatistics
Get node statistics