module Rattletrap.Encode.Int32le ( putInt32 , putInt32Bits ) where import Rattletrap.Type.Int32le import Rattletrap.Utility.Bytes import qualified Data.Binary as Binary import qualified Data.Binary.Bits.Put as BinaryBits import qualified Data.Binary.Put as Binary import qualified Data.ByteString.Lazy as LazyBytes putInt32 :: Int32le -> Binary.Put putInt32 :: Int32le -> Put putInt32 Int32le int32 = Int32 -> Put Binary.putInt32le (Int32le -> Int32 int32leValue Int32le int32) putInt32Bits :: Int32le -> BinaryBits.BitPut () putInt32Bits :: Int32le -> BitPut () putInt32Bits Int32le int32 = do let bytes :: ByteString bytes = ByteString -> ByteString LazyBytes.toStrict (Put -> ByteString Binary.runPut (Int32le -> Put putInt32 Int32le int32)) ByteString -> BitPut () BinaryBits.putByteString (ByteString -> ByteString reverseBytes ByteString bytes)