
On 11 January 2011 18:54, Antoine Latter
On Tue, Jan 11, 2011 at 10:22 AM, Aaron Gray
wrote: On 11 January 2011 00:02, Antoine Latter
wrote: On Mon, Jan 10, 2011 at 5:23 PM, Aaron Gray
wrote:
On 10 January 2011 22:30, Henning Thielemann
wrote: John Lato schrieb:
You could use my "word24" package[1] (GHC only) to provide non-aligned 24-bit word and int types with Storable instances. You should be able to write a binary instance (or whatever blaze-builder needs) fairly simply from this. Little-endian only ATM, but BE could be added if necessary.
Good to know that! However, I think for the original poster the
binary
package is perfect. This way he does not worry about unsafe peeking and poking around in memory.
Yes. I have came back to looking at the binary package, the only thing is I think I have to build my own primatives with it as it is big-endian, where ActionScript Byte Code format is little-endian. It does provide some little-endian functions but they are not brought to the surface. It also seems to roll its own serializations.
The 'binary' package supports big-endian, little-endian and host-endian construction in the Data.Binary.Builder module, so you hopefully won't need to reimplement too much.
Are there any examples of usage anywhere ? It does not seem to have 24bit values either. I am still thinking of implementing my own following the straight Data.Binary package as an example. Aaron
I used Data.Binary.Builder in an implementation of the memcached binary protocol:
http://hackage.haskell.org/packages/archive/starling/0.3.0/doc/html/Network-...
Nice code, I like the Serialize and Deserialize classes. Its a shame Data.Binary does not use them.
I'm sure other folks can chime in with good examples if that one isn't clear - the package 'binary' is pretty popular.
You'd have to write your own putWord24be/le or whatever you need out of the 'singleton :: Word8 -> Builder' function. But that seems simpler than reimplementing Data.Binary.
Yes. Thanks, Aaron