module Rattletrap.Encode.Float32le ( putFloat32 , putFloat32Bits ) where import Rattletrap.Type.Float32le 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 putFloat32 :: Float32le -> Binary.Put putFloat32 :: Float32le -> Put putFloat32 = Float -> Put Binary.putFloatle (Float -> Put) -> (Float32le -> Float) -> Float32le -> Put forall b c a. (b -> c) -> (a -> b) -> a -> c . Float32le -> Float float32leValue putFloat32Bits :: Float32le -> BinaryBits.BitPut () putFloat32Bits :: Float32le -> BitPut () putFloat32Bits Float32le float32 = do let bytes :: ByteString bytes = ByteString -> ByteString LazyBytes.toStrict (Put -> ByteString Binary.runPut (Float32le -> Put putFloat32 Float32le float32)) ByteString -> BitPut () BinaryBits.putByteString (ByteString -> ByteString reverseBytes ByteString bytes)