Skip to main content

NodeDirectory

Struct NodeDirectory 

Source
pub struct NodeDirectory { /* private fields */ }
Expand description

Maps NodeIds to peer connection information.

The NodeDirectory is the runtime’s view of the cluster topology. It tracks which nodes are known, their connection status, and optional endpoint addresses.

Implementations§

Source§

impl NodeDirectory

Source

pub fn new() -> Self

Create a new empty directory.

Source

pub fn add_peer(&mut self, node_id: NodeId, address: Option<String>)

Register a peer node.

Source

pub fn set_status(&mut self, node_id: &NodeId, status: PeerStatus)

Update the status of a peer.

Source

pub fn remove_peer(&mut self, node_id: &NodeId)

Remove a peer from the directory.

Source

pub fn get_peer(&self, node_id: &NodeId) -> Option<&PeerInfo>

Look up a peer by node ID.

Source

pub fn peer_nodes(&self) -> Vec<NodeId>

Get all known peer node IDs.

Source

pub fn peers_with_status(&self, status: PeerStatus) -> Vec<&PeerInfo>

Get all peers with a specific status.

Source

pub fn peer_count(&self) -> usize

Number of known peers.

Source

pub fn connected_count(&self) -> usize

Number of connected peers.

Source

pub fn is_connected(&self, node_id: &NodeId) -> bool

Check if a node is known and connected.

Trait Implementations§

Source§

impl Default for NodeDirectory

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more