module Rattletrap.Encode.Word8le ( putWord8 , putWord8Bits ) where import Rattletrap.Type.Word8le 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 putWord8 :: Word8le -> Binary.Put putWord8 :: Word8le -> Put putWord8 Word8le word8 = Word8 -> Put Binary.putWord8 (Word8le -> Word8 word8leValue Word8le word8) putWord8Bits :: Word8le -> BinaryBits.BitPut () putWord8Bits :: Word8le -> BitPut () putWord8Bits Word8le word8 = do let bytes :: ByteString bytes = ByteString -> ByteString LazyBytes.toStrict (Put -> ByteString Binary.runPut (Word8le -> Put putWord8 Word8le word8)) ByteString -> BitPut () BinaryBits.putByteString (ByteString -> ByteString reverseBytes ByteString bytes)