use std::fmt;
use openraft_macros::since;
use crate::RaftTypeConfig;
use crate::raft::ClientWriteResponse;
#[since(
version = "0.10.0",
change = "report the joint entry as optional and the uniform entry as always present"
)]
#[since(version = "0.10.0", change = "added payload-aware membership outcome")]
#[cfg_attr(
feature = "serde",
derive(serde::Deserialize, serde::Serialize),
serde(bound = "C::R: crate::AppDataResponse")
)]
pub struct ChangeMembershipOutcome<C>
where C: RaftTypeConfig
{
pub joint: Option<ClientWriteResponse<C>>,
pub uniform: ClientWriteResponse<C>,
}
impl<C> fmt::Debug for ChangeMembershipOutcome<C>
where
C: RaftTypeConfig,
C::R: fmt::Debug,
{
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("ChangeMembershipOutcome")
.field("joint", &self.joint)
.field("uniform", &self.uniform)
.finish()
}
}