Bit-struct and arrays of members?

Hi,

I'm using the bit-struct [1] (which is just awesome, btw) and wondering
how I can realize arrays of members.

I'm reading binary data from pre-existing files which are based on C
structs which look similar to this basic example:

struct {
  int vector[5];
  ...
} vector_t;

My current solution is to just write:

class Vector < BitStruct
  default_options :endian => :little
  signed vector_1, 32
  signed vector_2, 32
  signed vector_3, 32
...

I would prefer to use an array. I couldn't figure out how to do it,
there's no example with it and I start to think it's not possible ... ?

thanks,
- Markus

[1] http://redshift.sourceforge.net/bit-struct/

Markus Fischer wrote:

Hi,

I'm using the bit-struct [1] (which is just awesome, btw) and wondering
how I can realize arrays of members.

I'm reading binary data from pre-existing files which are based on C
structs which look similar to this basic example:

struct {
  int vector[5];
  ...
} vector_t;

My current solution is to just write:

class Vector < BitStruct
  default_options :endian => :little
  signed vector_1, 32
  signed vector_2, 32
  signed vector_3, 32
...

I would prefer to use an array. I couldn't figure out how to do it,
there's no example with it and I start to think it's not possible ... ?

thanks,
- Markus

[1] BitStruct

Sorry, no support for that (yet). IIRC one of the other libs has something for this, maybe it was binstruct or binaryparse.

It's not really too different from the #nest construct, so maybe it could be added along those lines, as long as the array length is static. Will think about it...

···

--
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Markus Fischer wrote:

I'm using the bit-struct [1] (which is just awesome, btw) and wondering
how I can realize arrays of members.

Here's a quick implementation and some examples. The main limitation (that I'm aware of) is that a Vector cannot yet be embedded in another BitStruct. Will think about that (note hypothetical syntax)...

http://pastebin.com/ma74d15d

···

--
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407