[][src]Struct concorde::Opinion

pub struct Opinion<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> where
    ObjLD::T: Clone + Debug + Default
{ pub estimated_commit: StateLE<ObjLD, Peer>, pub proposed_configs: ArcOrdSet<CfgLE<Peer>>, pub candidate_object: LatticeElt<ObjLD>, }

Participants store, exchange and update Opinions about the values in the Cfg and Obj lattices as they attempt to come to an agreement.

The term Opinion does not appear in the paper, but I've introduced it (along with the field names in it) in an attempt to clarify the presentation and bundle-together the 3 variables that are used as a group in both local state and message bodies.

Fields

estimated_commit: StateLE<ObjLD, Peer>

called vₚ in the paper

proposed_configs: ArcOrdSet<CfgLE<Peer>>

called Tₚ in the paper

candidate_object: LatticeElt<ObjLD>

called objₚ in the paper

Implementations

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default
[src]

pub fn same_estimated_commit_config(&self, other: &Self) -> bool[src]

pub fn same_estimated_and_proposed_configs(&self, other: &Self) -> bool[src]

Trait Implementations

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> Clone for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default
[src]

impl<ObjLD: Debug + LatticeDef, Peer: Debug + Ord + Clone + Hash> Debug for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default
[src]

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> Default for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default
[src]

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> Eq for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default + Eq
[src]

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> Hash for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default + Hash
[src]

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> Ord for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default + Ord
[src]

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> PartialEq<Opinion<ObjLD, Peer>> for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default + Eq
[src]

impl<ObjLD: LatticeDef, Peer: Ord + Clone + Debug + Hash> PartialOrd<Opinion<ObjLD, Peer>> for Opinion<ObjLD, Peer> where
    ObjLD::T: Clone + Debug + Default + Eq
[src]

Auto Trait Implementations

impl<ObjLD, Peer> RefUnwindSafe for Opinion<ObjLD, Peer> where
    Peer: RefUnwindSafe,
    <ObjLD as LatticeDef>::T: RefUnwindSafe

impl<ObjLD, Peer> Send for Opinion<ObjLD, Peer> where
    Peer: Send + Sync,
    <ObjLD as LatticeDef>::T: Send

impl<ObjLD, Peer> Sync for Opinion<ObjLD, Peer> where
    Peer: Send + Sync,
    <ObjLD as LatticeDef>::T: Sync

impl<ObjLD, Peer> Unpin for Opinion<ObjLD, Peer> where
    Peer: Unpin,
    <ObjLD as LatticeDef>::T: Unpin

impl<ObjLD, Peer> UnwindSafe for Opinion<ObjLD, Peer> where
    Peer: RefUnwindSafe + UnwindSafe,
    <ObjLD as LatticeDef>::T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.