module Rattletrap.Encode.Word64le ( putWord64 , putWord64Bits ) where import Rattletrap.Type.Word64le 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 putWord64 :: Word64le -> Binary.Put putWord64 :: Word64le -> Put putWord64 Word64le word64 = Word64 -> Put Binary.putWord64le (Word64le -> Word64 word64leValue Word64le word64) putWord64Bits :: Word64le -> BinaryBits.BitPut () putWord64Bits :: Word64le -> BitPut () putWord64Bits Word64le word64 = do let bytes :: ByteString bytes = ByteString -> ByteString LazyBytes.toStrict (Put -> ByteString Binary.runPut (Word64le -> Put putWord64 Word64le word64)) ByteString -> BitPut () BinaryBits.putByteString (ByteString -> ByteString reverseBytes ByteString bytes)