module Rattletrap.Encode.Int64le ( putInt64Bits ) where import Rattletrap.Type.Int64le 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 putInt64 :: Int64le -> Binary.Put putInt64 :: Int64le -> Put putInt64 Int64le int64 = Int64 -> Put Binary.putInt64le (Int64le -> Int64 int64leValue Int64le int64) putInt64Bits :: Int64le -> BinaryBits.BitPut () putInt64Bits :: Int64le -> BitPut () putInt64Bits Int64le int64 = do let bytes :: ByteString bytes = ByteString -> ByteString LazyBytes.toStrict (Put -> ByteString Binary.runPut (Int64le -> Put putInt64 Int64le int64)) ByteString -> BitPut () BinaryBits.putByteString (ByteString -> ByteString reverseBytes ByteString bytes)