ouroboros-consensus
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Ledger.Tables.Diff

Synopsis

Types

data Delta v Source #

Constructors

Insert !v 
Delete 

Instances

Instances details
Functor Delta Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

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

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

Semigroup (Delta v) Source #

Right-biased

Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

(<>) ∷ Delta v → Delta v → Delta v #

sconcat ∷ NonEmpty (Delta v) → Delta v #

stimes ∷ Integral b ⇒ b → Delta v → Delta v #

Eq v ⇒ Eq (Delta v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

(==) ∷ Delta v → Delta v → Bool #

(/=) ∷ Delta v → Delta v → Bool #

Generic (Delta v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Associated Types

type Rep (Delta v) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

type Rep (Delta v) = D1 ('MetaData "Delta" "Ouroboros.Consensus.Ledger.Tables.Diff" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "Insert" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 v)) :+: C1 ('MetaCons "Delete" 'PrefixI 'False) (U1 ∷ Type → Type))

Methods

from ∷ Delta v → Rep (Delta v) x #

to ∷ Rep (Delta v) x → Delta v #

Show v ⇒ Show (Delta v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

showsPrec ∷ Int → Delta v → ShowS #

show ∷ Delta v → String #

showList ∷ [Delta v] → ShowS #

NoThunks v ⇒ NoThunks (Delta v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

type Rep (Delta v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

type Rep (Delta v) = D1 ('MetaData "Delta" "Ouroboros.Consensus.Ledger.Tables.Diff" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "Insert" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 v)) :+: C1 ('MetaCons "Delete" 'PrefixI 'False) (U1 ∷ Type → Type))

newtype Diff k v Source #

Constructors

Diff (Map k (Delta v)) 

Instances

Instances details
Functor (Diff k) Source #

Custom Functor instance, since Functor (Map k) is actually the Functor instance for a lazy Map.

Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

fmap ∷ (a → b) → Diff k a → Diff k b #

(<$) ∷ a → Diff k b → Diff k a #

Ord k ⇒ Monoid (Diff k v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

mempty ∷ Diff k v #

mappend ∷ Diff k v → Diff k v → Diff k v #

mconcat ∷ [Diff k v] → Diff k v #

Ord k ⇒ Semigroup (Diff k v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

(<>) ∷ Diff k v → Diff k v → Diff k v #

sconcat ∷ NonEmpty (Diff k v) → Diff k v #

stimes ∷ Integral b ⇒ b → Diff k v → Diff k v #

(Eq k, Eq v) ⇒ Eq (Diff k v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

(==) ∷ Diff k v → Diff k v → Bool #

(/=) ∷ Diff k v → Diff k v → Bool #

Generic (Diff k v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Associated Types

type Rep (Diff k v) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

type Rep (Diff k v) = D1 ('MetaData "Diff" "Ouroboros.Consensus.Ledger.Tables.Diff" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "Diff" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map k (Delta v)))))

Methods

from ∷ Diff k v → Rep (Diff k v) x #

to ∷ Rep (Diff k v) x → Diff k v #

(Show k, Show v) ⇒ Show (Diff k v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

Methods

showsPrec ∷ Int → Diff k v → ShowS #

show ∷ Diff k v → String #

showList ∷ [Diff k v] → ShowS #

(NoThunks k, NoThunks v) ⇒ NoThunks (Diff k v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

type Rep (Diff k v) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Diff

type Rep (Diff k v) = D1 ('MetaData "Diff" "Ouroboros.Consensus.Ledger.Tables.Diff" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "Diff" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map k (Delta v)))))

Conversion

keysSet ∷ Diff k v → Set k Source #

Construction

diff ∷ (Ord k, Eq v) ⇒ Map k v → Map k v → Diff k v Source #

Maps

fromMap ∷ Map k (Delta v) → Diff k v Source #

fromMapDeletes ∷ Map k v → Diff k v Source #

fromMapInserts ∷ Map k v → Diff k v Source #

Set

Lists

fromList ∷ Ord k ⇒ [(k, Delta v)] → Diff k v Source #

fromListDeletes ∷ Ord k ⇒ [(k, v)] → Diff k v Source #

fromListInserts ∷ Ord k ⇒ [(k, v)] → Diff k v Source #

Query

Size

null ∷ Diff k v → Bool Source #

numDeletes ∷ Diff k v → Int Source #

numInserts ∷ Diff k v → Int Source #

size ∷ Diff k v → Int Source #

Applying diffs

applyDiff ∷ Ord k ⇒ Map k v → Diff k v → Map k v Source #

applyDiffForKeys ∷ Ord k ⇒ Map k v → Set k → Diff k v → Map k v Source #

Filter

filterWithKeyOnly ∷ (k → Bool) → Diff k v → Diff k v Source #

foldMapDelta ∷ Monoid m ⇒ (Delta v → m) → Diff k v → m Source #

foldMap over the deltas.

traverseDeltaWithKey_ ∷ Applicative t ⇒ (k → Delta v → t a) → Diff k v → t () Source #

Traversal with keys over the deltas.