module Rattletrap.Encode.Word32le ( putWord32 , putWord32Bits ) where import Rattletrap.Type.Word32le 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 putWord32 :: Word32le -> Binary.Put putWord32 :: Word32le -> Put putWord32 Word32le word32 = Word32 -> Put Binary.putWord32le (Word32le -> Word32 word32leValue Word32le word32) putWord32Bits :: Word32le -> BinaryBits.BitPut () putWord32Bits :: Word32le -> BitPut () putWord32Bits Word32le word32 = do let bytes :: ByteString bytes = ByteString -> ByteString LazyBytes.toStrict (Put -> ByteString Binary.runPut (Word32le -> Put putWord32 Word32le word32)) ByteString -> BitPut () BinaryBits.putByteString (ByteString -> ByteString reverseBytes ByteString bytes)