module Data.Marshalling ( module Data.Marshalling
, module Data.Word
, module Foreign.Ptr
, module Foreign.ForeignPtr
, module Foreign.Marshal
, module Foreign.Storable
)
where
import Control.Monad.Trans
import Data.Word
import Foreign.Ptr
import Foreign.ForeignPtr
import Foreign.Marshal
import Foreign.Storable
type OutputBuffer = Ptr Word8
string_to_bytes :: String -> [Word8]
string_to_bytes str = map (toEnum . fromEnum) str
serialize_bytes :: MonadIO m => [Word8] -> OutputBuffer -> m OutputBuffer
serialize_bytes bytes !out_ptr = do
liftIO $! pokeArray out_ptr bytes
return $! out_ptr `plusPtr` ( length bytes )