plutus-core-1.30.0.0: Language library for Plutus Core
Safe HaskellSafe-Inferred
LanguageHaskell2010

UntypedPlutusCore.Evaluation.Machine.Cek.StepCounter

Synopsis

Documentation

newtype StepCounter (n ∷ Nat) s Source #

A set of Word8 counters that is used in the CEK machine to count steps.

Constructors

StepCounter (MutablePrimArray s Word8) 

newCounter ∷ (KnownNat n, PrimMonad m) ⇒ Proxy n → m (StepCounter n (PrimState m)) Source #

Make a new StepCounter with the given number of counters.

resetCounter ∷ ∀ n m. (KnownNat n, PrimMonad m) ⇒ StepCounter n (PrimState m) → m () Source #

Reset all the counters in the given StepCounter to zero.

readCounter ∷ ∀ m n. PrimMonad m ⇒ StepCounter n (PrimState m) → Int → m Word8 Source #

Read the value of a counter.

writeCounter ∷ ∀ m n. PrimMonad m ⇒ StepCounter n (PrimState m) → IntWord8 → m () Source #

Write to a counter.

modifyCounterPrimMonad m ⇒ Int → (Word8Word8) → StepCounter n (PrimState m) → m Word8 Source #

Modify the value of a counter. Returns the modified value.

itraverseCounter_ ∷ ∀ n m. (KnownNat n, PrimMonad m) ⇒ (IntWord8 → m ()) → StepCounter n (PrimState m) → m () Source #

Traverse the counters with an effectful function.

iforCounter_ ∷ (KnownNat n, PrimMonad m) ⇒ StepCounter n (PrimState m) → (IntWord8 → m ()) → m () Source #

Traverse the counters with an effectful function.