-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Signed and unsigned LEB128 codec for binary library -- -- Signed and unsigned LEB128 codec for binary library. @package leb128-binary @version 0.1.2 -- | Signed LEB128 codec. This codec encodes the two's complement of -- a signed number as described here. -- -- Any getXXX decoder can decode bytes generated using any of the -- putXXX encoders, provided the encoded number fits in the target -- type. -- -- WARNING: This is not compatible with the Unsigned LEB128 -- codec at Data.Binary.ULEB128 nor with the ZigZag LEB128 -- codec at Data.Binary.ZLEB128. module Data.Binary.SLEB128 -- | Newtype wrapper for Binary encoding and decoding x -- using the Signed LEB128 codec. Useful in conjunction with -- DerivingVia. newtype SLEB128 x SLEB128 :: x -> SLEB128 x putInteger :: Integer -> Put putInt64 :: Int64 -> Put putInt32 :: Int32 -> Put putInt16 :: Int16 -> Put putInt8 :: Int8 -> Put putInt :: Int -> Put putNatural :: Natural -> Put putWord64 :: Word64 -> Put putWord32 :: Word32 -> Put putWord16 :: Word16 -> Put putWord8 :: Word8 -> Put putWord :: Word -> Put getInteger :: Int -> Get Integer getInt64 :: Get Int64 getInt32 :: Get Int32 getInt16 :: Get Int16 getInt8 :: Get Int8 getInt :: Get Int getNatural :: Int -> Get Natural getWord64 :: Get Word64 getWord32 :: Get Word32 getWord16 :: Get Word16 getWord8 :: Get Word8 getWord :: Get Word instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Num.Integer.Integer) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Num.Natural.Natural) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Types.Int) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Types.Word) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Int.Int8) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Word.Word8) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Int.Int16) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Word.Word16) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Int.Int32) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Word.Word32) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Int.Int64) instance Data.Binary.Class.Binary (Data.Binary.SLEB128.SLEB128 GHC.Word.Word64) -- | Unsigned LEB128 codec. This codec encodes an unsigned number -- as described here. -- -- Any getXXX decoder can decode bytes generated using any of the -- putXXX encoders, provided the encoded number fits in the target -- type. -- -- WARNING: This is not compatible with the Signed LEB128 -- codec at Data.Binary.SLEB128 nor with the ZigZag LEB128 -- codec at Data.Binary.ZLEB128. module Data.Binary.ULEB128 -- | Newtype wrapper for Binary encoding and decoding x -- using the Unsigned LEB128 codec. Useful in conjunction with -- DerivingVia. newtype ULEB128 x ULEB128 :: x -> ULEB128 x putNatural :: Natural -> Put putWord64 :: Word64 -> Put putWord32 :: Word32 -> Put putWord16 :: Word16 -> Put putWord8 :: Word8 -> Put putWord :: Word -> Put getNatural :: Int -> Get Natural getWord64 :: Get Word64 getWord32 :: Get Word32 getWord16 :: Get Word16 getWord8 :: Get Word8 getWord :: Get Word getInteger :: Int -> Get Integer getInt64 :: Get Int64 getInt32 :: Get Int32 getInt16 :: Get Int16 getInt8 :: Get Int8 getInt :: Get Int -- | Puts a strict ByteString with its ULEB128-encoded length as -- prefix. -- -- See getByteString. putByteString :: ByteString -> Put -- | Gets a strict ByteString with its ULEB128-encoded length as -- prefix. -- -- See putByteString. getByteString :: Get ByteString -- | Puts a lazy ByteString with its ULEB128-encoded length as -- prefix. -- -- See getLazyByteString. putLazyByteString :: ByteString -> Put -- | Gets a lazy ByteString with its ULEB128-encoded length as -- prefix. -- -- See putLazyByteString. getLazyByteString :: Get ByteString -- | Puts a ShortByteString with its ULEB128-encoded length as -- prefix. -- -- See getShortByteString. putShortByteString :: ShortByteString -> Put -- | Gets a ShortByteString with its ULEB128-encoded length as -- prefix. -- -- See putShortByteString. getShortByteString :: Get ShortByteString instance Data.Binary.ULEB128.DecodeOnly "getInt8" => Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Int.Int8) instance Data.Binary.ULEB128.DecodeOnly "getInt16" => Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Int.Int16) instance Data.Binary.ULEB128.DecodeOnly "getInt32" => Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Int.Int32) instance Data.Binary.ULEB128.DecodeOnly "getInt64" => Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Int.Int64) instance Data.Binary.ULEB128.DecodeOnly "getInt" => Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Types.Int) instance Data.Binary.ULEB128.DecodeOnly "getInteger" => Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Num.Integer.Integer) instance Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Num.Natural.Natural) instance Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Types.Word) instance Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Word.Word8) instance Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Word.Word16) instance Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Word.Word32) instance Data.Binary.Class.Binary (Data.Binary.ULEB128.ULEB128 GHC.Word.Word64) -- | ZigZag LEB128 codec. This codec encodes the ZigZag -- representation of a signed number through ULEB128. -- -- Any getXXX decoder can decode bytes generated using any of the -- putXXX encoders, provided the encoded number fits in the target -- type. -- -- WARNING: This is not compatible with the Unsigned LEB128 -- codec at Data.Binary.ULEB128 nor with the Signed LEB128 -- codec at Data.Binary.SLEB128. module Data.Binary.ZLEB128 -- | Newtype wrapper for Binary encoding and decoding x -- using the ZigZag LEB128 codec. Useful in conjunction with -- DerivingVia. newtype ZLEB128 x ZLEB128 :: x -> ZLEB128 x putInteger :: Integer -> Put putInt64 :: Int64 -> Put putInt32 :: Int32 -> Put putInt16 :: Int16 -> Put putInt8 :: Int8 -> Put putInt :: Int -> Put putNatural :: Natural -> Put putWord64 :: Word64 -> Put putWord32 :: Word32 -> Put putWord16 :: Word16 -> Put putWord8 :: Word8 -> Put putWord :: Word -> Put getInteger :: Int -> Get Integer getInt64 :: Get Int64 getInt32 :: Get Int32 getInt16 :: Get Int16 getInt8 :: Get Int8 getInt :: Get Int getNatural :: Int -> Get Natural getWord64 :: Get Word64 getWord32 :: Get Word32 getWord16 :: Get Word16 getWord8 :: Get Word8 getWord :: Get Word instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Num.Integer.Integer) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Num.Natural.Natural) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Types.Int) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Types.Word) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Int.Int8) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Word.Word8) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Int.Int16) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Word.Word16) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Int.Int32) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Word.Word32) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Int.Int64) instance Data.Binary.Class.Binary (Data.Binary.ZLEB128.ZLEB128 GHC.Word.Word64)