Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Binary t where
- toByteString :: Binary a => a -> ByteString
- fromByteString :: Binary a => ByteString -> Maybe a
- putWord8 :: Word8 -> Put
- getWord8 :: Get Word8
- newtype LittleEndian = LittleEndian {}
Documentation
The Binary
class provides put
and get
, methods to encode and
decode a Haskell value to a lazy ByteString
. It mirrors the Read
and
Show
classes for textual representation of Haskell types, and is
suitable for serialising Haskell values to disk, over the network.
For decoding and generating simple external binary formats (e.g. C
structures), Binary may be used, but in general is not suitable
for complex protocols. Instead use the PutM
and Get
primitives
directly.
Instances of Binary should satisfy the following property:
decode . encode == id
That is, the get
and put
methods should be the inverse of each
other. A range of instances are provided for basic Haskell types.
Nothing
Encode a value in the Put monad.
Decode a value in the Get monad
Encode a list of values in the Put monad. The default implementation may be overridden to be more efficient but must still have the same encoding format.
Instances
Binary All | Since: binary-0.8.4.0 |
Binary Any | Since: binary-0.8.4.0 |
Binary SomeTypeRep | |
Defined in Data.Binary.Class | |
Binary Version | Since: binary-0.8.0.0 |
Binary Void | Since: binary-0.8.0.0 |
Binary Fingerprint | Since: binary-0.7.6.0 |
Defined in Data.Binary.Class | |
Binary Int16 | |
Binary Int32 | |
Binary Int64 | |
Binary Int8 | |
Binary Word16 | |
Binary Word32 | |
Binary Word64 | |
Binary Word8 | |
Binary ByteString | |
Defined in Data.Binary.Class | |
Binary ByteString | |
Defined in Data.Binary.Class | |
Binary ShortByteString | |
Defined in Data.Binary.Class | |
Binary IntSet | |
Binary KindRep | Since: binary-0.8.5.0 |
Binary Ordering | |
Binary TyCon | Since: binary-0.8.5.0 |
Binary TypeLitSort | Since: binary-0.8.5.0 |
Defined in Data.Binary.Class | |
Binary Scientific | Note that in the future I intend to change the type of the |
Defined in Data.Scientific | |
Binary ShortText | |
Binary UUID | This |
Binary LittleEndian Source # | |
Defined in ZkFold.Base.Data.ByteString | |
Binary Integer | |
Binary Natural | Since: binary-0.7.3.0 |
Binary () | |
Binary Bool | |
Binary Char | |
Binary Double | |
Binary Float | |
Binary Int | |
Binary RuntimeRep | Since: binary-0.8.5.0 |
Defined in Data.Binary.Class | |
Binary VecCount | Since: binary-0.8.5.0 |
Binary VecElem | Since: binary-0.8.5.0 |
Binary Word | |
Binary a => Binary (Complex a) | |
Binary a => Binary (Identity a) | |
Binary a => Binary (First a) | Since: binary-0.8.4.0 |
Binary a => Binary (Last a) | Since: binary-0.8.4.0 |
Binary a => Binary (First a) | Since: binary-0.8.4.0 |
Binary a => Binary (Last a) | Since: binary-0.8.4.0 |
Binary a => Binary (Max a) | Since: binary-0.8.4.0 |
Binary a => Binary (Min a) | Since: binary-0.8.4.0 |
Binary m => Binary (WrappedMonoid m) | Since: binary-0.8.4.0 |
Defined in Data.Binary.Class | |
Binary a => Binary (Dual a) | Since: binary-0.8.4.0 |
Binary a => Binary (Product a) | Since: binary-0.8.4.0 |
Binary a => Binary (Sum a) | Since: binary-0.8.4.0 |
Binary a => Binary (NonEmpty a) | Since: binary-0.8.4.0 |
(Binary a, Integral a) => Binary (Ratio a) | |
Binary e => Binary (IntMap e) | |
Binary e => Binary (Seq e) | |
Binary a => Binary (Set a) | |
Binary e => Binary (Tree e) | |
Binary a => Binary (Maybe a) | |
KnownNat p => Binary (Zp p) Source # | |
Binary a => Binary (Maybe a) | |
Binary a => Binary [a] | |
(Binary i, Ix i, Binary e, IArray UArray e) => Binary (UArray i e) | |
(Binary a, Binary b) => Binary (Either a b) | |
Binary (Fixed a) | Since: binary-0.8.0.0 |
(Binary a, Binary b) => Binary (Arg a b) | Since: binary-0.8.4.0 |
Typeable a => Binary (TypeRep a) | |
(Binary i, Ix i, Binary e) => Binary (Array i e) | |
(Binary k, Binary e) => Binary (Map k e) | |
(Binary a, Binary b) => Binary (Either a b) | |
(Binary a, Binary b) => Binary (These a b) | |
(Binary a, Binary b) => Binary (Pair a b) | |
(Binary a, Binary b) => Binary (These a b) | Since: these-0.7.1 |
Binary f => Binary (Ext2 f e) Source # | |
Binary f => Binary (Ext3 f e) Source # | |
(EllipticCurve curve, Binary (BaseField curve)) => Binary (Point curve) Source # | |
(Binary a, KnownNat n) => Binary (SVector n a) Source # | |
Binary a => Binary (Vector n a) Source # | |
(Binary a, Binary b) => Binary (a, b) | |
Binary (f a) => Binary (Alt f a) | Since: binary-0.8.4.0 |
(Binary c, Binary (ProverMessage t a)) => Binary (CommitOpenProverMessage t c a) Source # | |
Defined in ZkFold.Base.Protocol.ARK.Protostar.CommitOpen put :: CommitOpenProverMessage t c a -> Put # get :: Get (CommitOpenProverMessage t c a) # putList :: [CommitOpenProverMessage t c a] -> Put # | |
(Binary a, Binary b, Binary c) => Binary (a, b, c) | |
(Binary a, Binary b, Binary c, Binary d) => Binary (a, b, c, d) | |
(Binary a, Binary b, Binary c, Binary d, Binary e) => Binary (a, b, c, d, e) | |
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f) => Binary (a, b, c, d, e, f) | |
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g) => Binary (a, b, c, d, e, f, g) | |
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h) => Binary (a, b, c, d, e, f, g, h) | |
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h, Binary i) => Binary (a, b, c, d, e, f, g, h, i) | |
(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h, Binary i, Binary j) => Binary (a, b, c, d, e, f, g, h, i, j) | |
toByteString :: Binary a => a -> ByteString Source #
fromByteString :: Binary a => ByteString -> Maybe a Source #
newtype LittleEndian Source #