ouroboros-consensus
Safe HaskellNone
LanguageHaskell2010

Test.Consensus.PointSchedule.Peers

Description

This module contains the definition of point schedule _peers_ as well as all kind of utilities to manipulate them.

Synopsis

Documentation

data Peer a Source #

General-purpose functor associated with a peer.

Constructors

Peer 

Fields

Instances

Instances details
Functor Peer Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

fmap ∷ (a → b) → Peer a → Peer b #

(<$) ∷ a → Peer b → Peer a #

Foldable Peer Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

fold ∷ Monoid m ⇒ Peer m → m #

foldMap ∷ Monoid m ⇒ (a → m) → Peer a → m #

foldMap' ∷ Monoid m ⇒ (a → m) → Peer a → m #

foldr ∷ (a → b → b) → b → Peer a → b #

foldr' ∷ (a → b → b) → b → Peer a → b #

foldl ∷ (b → a → b) → b → Peer a → b #

foldl' ∷ (b → a → b) → b → Peer a → b #

foldr1 ∷ (a → a → a) → Peer a → a #

foldl1 ∷ (a → a → a) → Peer a → a #

toList ∷ Peer a → [a] #

null ∷ Peer a → Bool #

length ∷ Peer a → Int #

elem ∷ Eq a ⇒ a → Peer a → Bool #

maximum ∷ Ord a ⇒ Peer a → a #

minimum ∷ Ord a ⇒ Peer a → a #

sum ∷ Num a ⇒ Peer a → a #

product ∷ Num a ⇒ Peer a → a #

Traversable Peer Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

traverse ∷ Applicative f ⇒ (a → f b) → Peer a → f (Peer b) #

sequenceA ∷ Applicative f ⇒ Peer (f a) → f (Peer a) #

mapM ∷ Monad m ⇒ (a → m b) → Peer a → m (Peer b) #

sequence ∷ Monad m ⇒ Peer (m a) → m (Peer a) #

Eq a ⇒ Eq (Peer a) Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

(==) ∷ Peer a → Peer a → Bool #

(/=) ∷ Peer a → Peer a → Bool #

Show a ⇒ Show (Peer a) Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

showsPrec ∷ Int → Peer a → ShowS #

show ∷ Peer a → String #

showList ∷ [Peer a] → ShowS #

Condense a ⇒ Condense (Peer a) Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

condense ∷ Peer a → String Source #

CondenseList a ⇒ CondenseList (Peer a) Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

condenseList ∷ [Peer a] → [String] Source #

data PeerId Source #

Identifier used to index maps and specify which peer is active during a tick.

Instances

Instances details
Eq PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

(==) ∷ PeerId → PeerId → Bool #

(/=) ∷ PeerId → PeerId → Bool #

Ord PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

compare ∷ PeerId → PeerId → Ordering #

(<) ∷ PeerId → PeerId → Bool #

(<=) ∷ PeerId → PeerId → Bool #

(>) ∷ PeerId → PeerId → Bool #

(>=) ∷ PeerId → PeerId → Bool #

max ∷ PeerId → PeerId → PeerId #

min ∷ PeerId → PeerId → PeerId #

IsString PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

fromString ∷ String → PeerId #

Generic PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Associated Types

type Rep PeerId 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

type Rep PeerId = D1 ('MetaData "PeerId" "Test.Consensus.PointSchedule.Peers" "ouroboros-consensus-4.0.0.0-inplace-consensus-diffusion-test" 'False) (C1 ('MetaCons "HonestPeer" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "AdversarialPeer" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

Methods

from ∷ PeerId → Rep PeerId x #

to ∷ Rep PeerId x → PeerId #

Show PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

showsPrec ∷ Int → PeerId → ShowS #

show ∷ PeerId → String #

showList ∷ [PeerId] → ShowS #

Hashable PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

hashWithSalt ∷ Int → PeerId → Int Source #

hash ∷ PeerId → Int Source #

NoThunks PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Condense PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

condense ∷ PeerId → String Source #

CondenseList PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

condenseList ∷ [PeerId] → [String] Source #

type Rep PeerId Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

type Rep PeerId = D1 ('MetaData "PeerId" "Test.Consensus.PointSchedule.Peers" "ouroboros-consensus-4.0.0.0-inplace-consensus-diffusion-test" 'False) (C1 ('MetaCons "HonestPeer" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "AdversarialPeer" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

data Peers a Source #

General-purpose functor for a set of peers.

Constructors

Peers 

Fields

Instances

Instances details
Functor Peers Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

fmap ∷ (a → b) → Peers a → Peers b #

(<$) ∷ a → Peers b → Peers a #

Foldable Peers Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

fold ∷ Monoid m ⇒ Peers m → m #

foldMap ∷ Monoid m ⇒ (a → m) → Peers a → m #

foldMap' ∷ Monoid m ⇒ (a → m) → Peers a → m #

foldr ∷ (a → b → b) → b → Peers a → b #

foldr' ∷ (a → b → b) → b → Peers a → b #

foldl ∷ (b → a → b) → b → Peers a → b #

foldl' ∷ (b → a → b) → b → Peers a → b #

foldr1 ∷ (a → a → a) → Peers a → a #

foldl1 ∷ (a → a → a) → Peers a → a #

toList ∷ Peers a → [a] #

null ∷ Peers a → Bool #

length ∷ Peers a → Int #

elem ∷ Eq a ⇒ a → Peers a → Bool #

maximum ∷ Ord a ⇒ Peers a → a #

minimum ∷ Ord a ⇒ Peers a → a #

sum ∷ Num a ⇒ Peers a → a #

product ∷ Num a ⇒ Peers a → a #

Eq a ⇒ Eq (Peers a) Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

(==) ∷ Peers a → Peers a → Bool #

(/=) ∷ Peers a → Peers a → Bool #

Show a ⇒ Show (Peers a) Source # 
Instance details

Defined in Test.Consensus.PointSchedule.Peers

Methods

showsPrec ∷ Int → Peers a → ShowS #

show ∷ Peers a → String #

showList ∷ [Peers a] → ShowS #

adversarialPeers' ∷ Peers a → Map PeerId a Source #

Variant of adversarialPeers that returns a map with PeerIds as keys.

adversarialPeers'' ∷ Peers a → Map PeerId (Peer a) Source #

Variant of adversarialPeers that returns a map with PeerIds as keys and values as Peers.

fromMap' ∷ Map PeerId a → Peers a Source #

Same as fromMap but the map contains unwrapped values.

getPeer ∷ PeerId → Peers a → Peer a Source #

getPeerIds ∷ Peers a → [PeerId] Source #

Extract all PeerIds.

honestPeers' ∷ Peers a → Map PeerId a Source #

Variant of honestPeers that returns a map with PeerIds as keys.

honestPeers'' ∷ Peers a → Map PeerId (Peer a) Source #

Variant of honestPeers that returns a map with PeerIds as keys and values as Peers.

peers' ∷ [a] → [a] → Peers a Source #

Construct Peers from values, adding adversary names based on the default schema.

peersFromPeerIdList ∷ [PeerId] → a → Peers a Source #

Make a Peers structure from a list of peer ids and a default value.

peersFromPeerList ∷ [Peer a] → Peers a Source #

Make a Peers structure from individual Peers.

peersList ∷ Peers a → [Peer a] Source #

Convert Peers to a list of Peer.

peersOnlyHonest ∷ a → Peers a Source #

A set of peers with only one honest peer carrying the given value.

toMap ∷ Peers a → Map PeerId (Peer a) Source #

toMap' ∷ Peers a → Map PeerId a Source #

Same as toMap but the map contains unwrapped values.

unionWithKey ∷ (PeerId → a → a → a) → Peers a → Peers a → Peers a Source #

updatePeer ∷ (a → (a, b)) → PeerId → Peers a → (Peers a, b) Source #