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

PlutusCore.Flat.Decoder.Prim

Description

Strict Decoder Primitives

Synopsis

Documentation

dBoolGet Bool Source #

Decode a boolean

dWord8Get Word8 Source #

Return the 8 most significant bits (same as dBE8)

dBE8Get Word8 Source #

Return the 8 most significant bits

dBE16Get Word16 Source #

Return the 16 most significant bits

dBE32Get Word32 Source #

Return the 32 most significant bits

dBE64Get Word64 Source #

Return the 64 most significant bits

dBEBits8IntGet Word8 Source #

Return the n most significant bits (up to maximum of 8)

The bits are returned right shifted:

>>> unflatWith (dBEBits8 3) [0b11100001::Word8] == Right 0b00000111
True
>>> unflatWith (dBEBits8 9) [0b11100001::Word8,0b11111111]
Left (BadOp "read8: cannot read 9 bits")

dBEBits16IntGet Word16 Source #

Return the n most significant bits (up to maximum of 16)

The bits are returned right shifted:

>>> pPrint . asBits <$> unflatWith (dBEBits16 11) [0b10110111::Word8,0b11100001]
Right 00000101 10111111

If more than 16 bits are requested, only the last 16 are returned:

>>> pPrint . asBits <$> unflatWith (dBEBits16 19) [0b00000000::Word8,0b11111111,0b11100001]
Right 00000111 11111111

dBEBits32IntGet Word32 Source #

Return the n most significant bits (up to maximum of 32) The bits are returned right shifted.

dBEBits64IntGet Word64 Source #

Return the n most significant bits (up to maximum of 64) The bits are returned right shifted.

dropBitsIntGet () Source #

Drop the specified number of bits

dFloatGet Float Source #

Decode a Float

dDoubleGet Double Source #

Decode a Double

getChunksInfoGet (Ptr Word8, [Int]) Source #

Decode an Array (a list of chunks up to 255 bytes long) returning the pointer to the first data byte and a list of chunk sizes

dByteString_Get ByteString Source #

Decode a ByteString

dLazyByteString_Get ByteString Source #

Decode a Lazy ByteString

dByteArray_Get (ByteArray, Int) Source #

Decode a ByteArray and its length

data ConsState Source #

A special state, optimised for constructor decoding.

It consists of:

  • The bits to parse, the top bit being the first to parse (could use a Word16 instead, no difference in performance)
  • The number of decoded bits

Supports up to 512 constructors (9 bits).

Constructors

ConsState !Word !Int 

consOpenGet ConsState Source #

Switch to constructor decoding {-# INLINE consOpen #-}

consCloseIntGet () Source #

Switch back to normal decoding {-# NOINLINE consClose #-}

consBoolConsState → (ConsState, Bool) Source #

Decode a single bit

consBitsConsStateInt → (ConsState, Word) Source #

Decode from 1 to 3 bits

It could read more bits that are available, but it doesn't matter, errors will be checked in consClose.

sizeOfGet a → Get Int Source #

Given a value's decoder, returns the size in bits of the encoded value

Since: 0.6

binOfGet a → Get (ByteString, Int) Source #

Given a value's decoder, returns the value's bit encoding.

The encoding starts at the returned bit position in the return bytestring's first byte and ends in an unspecified bit position in its final byte

Since: 0.6