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>

Register a node

fn unregister_node(&mut self, node_id: u64) -> Result<(), NerveError>

Unregister a node

fn get_node(&self, node_id: u64) -> Result<Option<NodeInfo>, NerveError>

Get node information

fn get_all_nodes(&self) -> Vec<NodeInfo>

Get all nodes

fn get_nodes_by_type(&self, node_type: NodeType) -> Vec<NodeInfo>

Get nodes by type

fn node_count(&self) -> usize

Get node count

fn statistics(&self) -> NodeStatistics

Get node statistics

Implementors§