Struct Mailbox

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

A mailbox to send messages to a running raft node.

Implementations§

Source§

impl Mailbox

Source

pub fn pears(&self) -> Vec<(u64, Peer)>

Retrieves a list of peers with their IDs. This method returns a vector containing tuples of peer IDs and their respective Peer objects. It iterates over the internal peers map and collects the IDs and cloned Peer instances.

Source

pub async fn send_proposal(&self, message: Vec<u8>) -> Result<Vec<u8>>

Sends a proposal to the leader node. This method first attempts to send the proposal to the local node if it is the leader. If the node is not the leader, it retrieves the leader’s address and sends the proposal to the leader node. If the proposal is successfully handled, the method returns a RaftResponse::Response with the resulting data.

Source

pub async fn send(&self, message: Vec<u8>) -> Result<Vec<u8>>

👎Deprecated

Deprecated method to send a message, internally calls send_proposal.

Source

pub async fn query(&self, query: Vec<u8>) -> Result<Vec<u8>>

Sends a query to the Raft node and returns the response data. It sends a Message::Query containing the query bytes and waits for a response. On success, it returns the data wrapped in RaftResponse::Response.

Source

pub async fn leave(&self) -> Result<()>

Sends a request to leave the Raft cluster. It initiates a ConfigChange to remove the node from the cluster and waits for a response.

Source

pub async fn status(&self) -> Result<Status>

Retrieves the current status of the Raft node. Sends a Message::Status request and waits for a RaftResponse::Status reply, which contains the node’s status.

Trait Implementations§

Source§

impl Clone for Mailbox

Source§

fn clone(&self) -> Mailbox

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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