-- * Type definitions for the framing layer for the AMQP protocol from the XML. -- -- ** Limitations -- -- The Float and Double wire formats for AMQP specify IEEE format. At present -- this module simply does binary coercion from the native floating point -- representation to 4 or 8 octets. This is GHC-specific and will only work -- correctly on hardware which uses IEEE format floats. -- -- The "put" and "get" actions for "RSet" cannot encode "BoundaryBelowAll" -- and "BoundaryAboveAll". For @RSet Word64@ these are replaced with -- @BoundaryBelow 0@ and @BoundaryAbove maxBound@. For @RSet SequenceNum@ -- they will cause run-time errors. module Framing.Types ( -- ** AMQP classes AmqpWire (..), AmqpType (..), AmqpBin (..), PackedString (..), -- ** AMQP data types Char8, packChar8, unpackChar8, Str8Latin, Str16Latin, SequenceNum (..), Str16Utf8, Str16Utf16, -- ** AMQP wire format put and get functions putAmqpBool, getAmqpBool, putAmqpChar, getAmqpChar, AmqpMethod (..), Domain (..), Field (..), ConstClass (..), Constant (..), -- ** Bit Packing -- | This is a brute force approach for efficiency. put1bits, put2bits, put3bits, put4bits, put5bits, put6bits, put7bits, put8bits, get1bits, get2bits, get3bits, get4bits, get5bits, get6bits, get7bits, get8bits, -- ** Time Stamps TimeStamp, putTimeStamp, getTimeStamp, -- ** Strings putShortString, getShortString, putString, getString, putAmqpByteString, getAmqpByteString, putUtf16, getUtf16, -- ** Field Tables FieldTable (..), makeFieldTable, fieldTablePairs, isValidFieldName, putFieldTable, getFieldTable,