[][src]Struct concorde::Opinion

pub struct Opinion<ObjLD: LatticeDef, Peer: DefTraits> {
    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: DefTraits> Opinion<ObjLD, Peer>[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: Clone + LatticeDef, Peer: Clone + DefTraits> Clone for Opinion<ObjLD, Peer>[src]

impl<ObjLD: Debug + LatticeDef, Peer: Debug + DefTraits> Debug for Opinion<ObjLD, Peer>[src]

impl<ObjLD: Default + LatticeDef, Peer: Default + DefTraits> Default for Opinion<ObjLD, Peer>[src]

impl<'de, ObjLD: LatticeDef, Peer: DefTraits> Deserialize<'de> for Opinion<ObjLD, Peer>[src]

impl<ObjLD: Eq + LatticeDef, Peer: Eq + DefTraits> Eq for Opinion<ObjLD, Peer>[src]

impl<ObjLD: Hash + LatticeDef, Peer: Hash + DefTraits> Hash for Opinion<ObjLD, Peer>[src]

impl<ObjLD: LatticeDef, Peer: DefTraits> Ord for Opinion<ObjLD, Peer> where
    ObjLD::T: Ord
[src]

impl<ObjLD: PartialEq + LatticeDef, Peer: PartialEq + DefTraits> PartialEq<Opinion<ObjLD, Peer>> for Opinion<ObjLD, Peer>[src]

impl<ObjLD: PartialOrd + LatticeDef, Peer: PartialOrd + DefTraits> PartialOrd<Opinion<ObjLD, Peer>> for Opinion<ObjLD, Peer>[src]

impl<ObjLD: LatticeDef, Peer: DefTraits> Serialize for Opinion<ObjLD, Peer>[src]

impl<ObjLD: LatticeDef, Peer: DefTraits> StructuralEq for Opinion<ObjLD, Peer>[src]

impl<ObjLD: LatticeDef, Peer: DefTraits> StructuralPartialEq for Opinion<ObjLD, Peer>[src]

Auto Trait Implementations

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

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

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

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

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

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> DefTraits for T where
    T: Clone + Ord + Default + Debug + Hash + DeserializeOwned + Serialize
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

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

impl<T> Instrument 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.

impl<T> ValTraits for T where
    T: Clone + Eq + Default + Debug + Hash + DeserializeOwned + Serialize
[src]