Moduleouroboros-consensus-4.2.1.0
Ouroboros.Consensus.Util.IndexedMemPack
- 2 classes
- 5 values
- Packageouroboros-consensus-4.2.1.0
- Exports7
- LicenceApache-2.0
- SourceMemPack.hs
Efficient serialization interface that operates directly on memory buffers.
Methods
typeName :: StringName of the type that is being deserialized for error reporting. Default implementation relies on Typeable.
packedByteCount :: a -> IntReport the exact size in number of bytes that packed version of this type will occupy. It is very important to get this right, otherwise packM will result in a runtime exception. Another words this is the expected property that it should hold:
Property packedByteCount a == bufferByteCount (pack a)packM :: a -> Pack s ()Write binary representation of a type into the MutableByteArray which can be accessed with ask, whenever direct operations on it are necessary.
unpackM :: Buffer b => Unpack s b aRead binary representation of the type directly from the buffer, which can be accessed with ask when necessary.
Warning - Direct reads from the buffer should be preceded with advancing the buffer offset within MonadState by the exact number of bytes that gets consumed from that buffer.
⚠ - Violation of the above rule will lead to segfaults.
Instances60MemPack, …
MemPack ByteArrayDefined in mempack-0.2.1.0 · Data.MemPackMemPack ByteStringDefined in mempack-0.2.1.0 · Data.MemPackMemPack ByteStringDefined in mempack-0.2.1.0 · Data.MemPackMemPack ShortByteStringDefined in mempack-0.2.1.0 · Data.MemPackMemPack CompactAddrDefined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.AddressMemPack TxIxDefined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.BaseTypesMemPack ScriptHashDefined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.HashesMemPack PlutusBinaryDefined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.Plutus.LanguageMemPack TxIdDefined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.TxInMemPack TxInDefined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.TxInMemPack VoidDefined in mempack-0.2.1.0 · Data.MemPackMemPack IntegerDefined in mempack-0.2.1.0 · Data.MemPackMemPack NaturalDefined in mempack-0.2.1.0 · Data.MemPackMemPack Int16Defined in mempack-0.2.1.0 · Data.MemPackMemPack Int32Defined in mempack-0.2.1.0 · Data.MemPackMemPack Int64Defined in mempack-0.2.1.0 · Data.MemPackMemPack Int8Defined in mempack-0.2.1.0 · Data.MemPackMemPack BoolDefined in mempack-0.2.1.0 · Data.MemPackMemPack CharDefined in mempack-0.2.1.0 · Data.MemPackMemPack DoubleDefined in mempack-0.2.1.0 · Data.MemPackMemPack FloatDefined in mempack-0.2.1.0 · Data.MemPackMemPack IntDefined in mempack-0.2.1.0 · Data.MemPackMemPack WordDefined in mempack-0.2.1.0 · Data.MemPackMemPack Word16Defined in mempack-0.2.1.0 · Data.MemPackMemPack Word32Defined in mempack-0.2.1.0 · Data.MemPackMemPack Word64Defined in mempack-0.2.1.0 · Data.MemPackMemPack Word8Defined in mempack-0.2.1.0 · Data.MemPackMemPack LengthDefined in mempack-0.2.1.0 · Data.MemPackMemPack TagDefined in mempack-0.2.1.0 · Data.MemPackMemPack TextDefined in mempack-0.2.1.0 · Data.MemPackMemPack ()Defined in mempack-0.2.1.0 · Data.MemPackEra era => MemPack (Datum era)Defined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.Plutus.DataTypeable kr => MemPack (Credential kr)Defined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.CredentialKnownNat n => MemPack (PackedBytes n)Defined in cardano-crypto-class-2.5.1.0 · Cardano.Crypto.PackedBytes.InternalMemPack (CompactForm Coin)Defined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.CoinMemPack (KeyHash r)Defined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.HashesMemPack (SafeHash i)Defined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.HashesMemPack (BinaryData era)Defined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.Plutus.DataMemPack (Plutus l)Defined in cardano-ledger-core-1.21.0.0 · Cardano.Ledger.Plutus.LanguageMemPack (Ptr a)Defined in mempack-0.2.1.0 · Data.MemPackMemPack (StablePtr a)Defined in mempack-0.2.1.0 · Data.MemPackMemPack (VarLen Word)Defined in mempack-0.2.1.0 · Data.MemPackMemPack (VarLen Word16)Defined in mempack-0.2.1.0 · Data.MemPackMemPack (VarLen Word32)Defined in mempack-0.2.1.0 · Data.MemPackMemPack (VarLen Word64)Defined in mempack-0.2.1.0 · Data.MemPackMemPack a => MemPack (Complex a)Defined in mempack-0.2.1.0 · Data.MemPackMemPack a => MemPack (Maybe a)Defined in mempack-0.2.1.0 · Data.MemPackMemPack a => MemPack (Array a)Defined in mempack-0.2.1.0 · Data.MemPackMemPack a => MemPack [a]Defined in mempack-0.2.1.0 · Data.MemPack(Typeable a, Prim a) => MemPack (PrimArray a)Defined in mempack-0.2.1.0 · Data.MemPack(MemPack a, Integral a) => MemPack (Ratio a)Defined in mempack-0.2.1.0 · Data.MemPack(All MemPackTxOut xs, Typeable xs) => MemPack (DefaultHardForkTxOut xs)Defined in ouroboros-consensus-4.2.1.0 · Ouroboros.Consensus.HardFork.Combinator.Ledger · orphanHashAlgorithm h => MemPack (Hash h a)Defined in cardano-crypto-class-2.5.1.0 · Cardano.Crypto.Hash.Class(MemPack a, MemPack b) => MemPack (Either a b)Defined in mempack-0.2.1.0 · Data.MemPack(MemPack a, MemPack b) => MemPack (a, b)Defined in mempack-0.2.1.0 · Data.MemPack(MemPack a, MemPack b, MemPack c) => MemPack (a, b, c)Defined in mempack-0.2.1.0 · Data.MemPack(MemPack a, MemPack b, MemPack c, MemPack d) => MemPack (a, b, c, d)Defined in mempack-0.2.1.0 · Data.MemPack(MemPack a, MemPack b, MemPack c, MemPack d, MemPack e) => MemPack (a, b, c, d, e)Defined in mempack-0.2.1.0 · Data.MemPack(MemPack a, MemPack b, MemPack c, MemPack d, MemPack e, MemPack f) => MemPack (a, b, c, d, e, f)Defined in mempack-0.2.1.0 · Data.MemPack(MemPack a, MemPack b, MemPack c, MemPack d, MemPack e, MemPack f, MemPack g) => MemPack (a, b, c, d, e, f, g)Defined in mempack-0.2.1.0 · Data.MemPack
Methods
indexedPackedByteCount :: l blk EmptyMK -> a -> IntindexedPackM :: l blk EmptyMK -> a -> Pack s ()indexedUnpackM :: Buffer b => forall s. l blk EmptyMK -> Unpack s b aindexedTypeName :: Proxy a -> l blk EmptyMK -> String
Instances2IndexedMemPack
(txout ~ TxOut blk, IndexedMemPack LedgerState blk txout) => IndexedMemPack ExtLedgerState blk txoutDefined in ouroboros-consensus-4.2.1.0 · Ouroboros.Consensus.Ledger.Extended(txout ~ TxOut m, IndexedMemPack LedgerState m txout) => IndexedMemPack LedgerState (DualBlock m a) txoutDefined in ouroboros-consensus-4.2.1.0 · Ouroboros.Consensus.Ledger.Dual