[racket-users] Re: [ANN] MessagePack implementation for Racke

2017-07-26 Thread HiPhish
On Tuesday, July 25, 2017 at 11:37:48 PM UTC+2, Lehi Toskin wrote:
> One thing I'm curious about is what things can you and can you not pack? In 
> the README it shows bytes being packed, which seems a little obvious, but 
> what about (transparent) structs? Hashes? Lists? I'm very interested in this 
> package... for science!

In theory anything can be packed as long as you can agree on *how* it should be 
packed. For example, if you have a point '(struct point (x y))', how should 
that be packed? There is no "point" type in MessagePack and no direct 
correspondance, so you would have to tell the recipient of your data "a point 
looks like this: ...". You could use the MessagePack 'ext' type, it consist of 
an 8-bit integer as a type tag and raw binary data, so you could agree with the 
recipient that the tag '13' stands for point and the data is two big-endian 
64-bit numbers in the order 'x' and 'y'. Or you could pack a transparent struct 
as a string that you can 'read' and 'write' in Racket.

For hash tables there is the map type and for vectors and lists there is the 
array type, so those are direct 1:1 correspondences. The elements of these are 
themselves individually packed, so if you have a list of hash tables that 
structure will be preserved.

I think adding the ability to define your own packing functions as additions to 
the library is something that's worth looking into later. Then you could define 
your own 'pack-point' and add it to the generic 'pack' function.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: [ANN] MessagePack implementation for Racke

2017-07-25 Thread Lehi Toskin
One thing I'm curious about is what things can you and can you not pack? In the 
README it shows bytes being packed, which seems a little obvious, but what 
about (transparent) structs? Hashes? Lists? I'm very interested in this 
package... for science!

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.