
Well, I liked that bit of Template Haskell code that Marc sent. I'm now stuck trying to adapt it to read Storables :-). It seems, on a second glance, that there's not that much to adapt. If I read Marc's code correctly it "derives" Storable and uses the peek, etc. methods to swap bytes around. Which means to me that so long as the byte swapping methods are implemented and I try to store a BigEndian or LittleEndian it would be stored correctly for me. Is this so? To recap, I'm trying to read binary packets from a socket and the first thing I do is read the packet length. I then need to read the packet body where the numbers are little or big endian. After processing the packet I need to write it out and the numbers again could be little or big endian. I could read a FastString from a socket since it has IO methods but I don't know how to convert the FS into a pointer suitable for Storable. So much to learn :-). Thanks, Joel On Oct 3, 2005, at 9:33 PM, Udo Stenzel wrote:
Why don't you pull out 4 bytes and assemble them manually? Three shifts, logical ors and fromIntegrals aren't that much of a burden after all.