[Haskell-cafe] Get out structured data from a C/C++ library inHaskell
donn at avvanta.com
Fri Aug 8 21:48:12 UTC 2014
Nicola Gigante <nicola.gigante at gmail.com>,
> Il giorno 08/ago/2014, alle ore 17:29, Donn Cave <donn at avvanta.com> ha scritto:
>> Foreign.Storable is the key to packing and unpacking a struct. The
>> hsc2hs utility adds some support for struct member names, which will
>> make your code more convenient and robust. You will also find "peek"
>> and "poke" functions in Foreign.Storable, for pointer access.
> Moreover, I see that peek and poke return IO a, so I
> can't pretend that the interface that I'm wrapping is pure,
> can I?
Funny you should ask ... I just happened to notice something about
pretending an external function is pure, in the library documentation
for Foreign.Marshall.unsafeLocalState. I can't say for sure whether
it would serve your purpose here or not - the documentation could be
read to say it does, anyway, and the function signature is IO a -> a.
I meant to say, about hsc2hs, documentation can be found in the
GHC user manual, chapter 12 or thereabouts.
More information about the Haskell-Cafe