Suggest adding struct iter_unpack allowing mixed formats & add iter_pack

In my work I make a lot of use of struct pack & unpack but sometimes find the fact that I either have to supply the whole format string or add position tracking mechanisms to my code explicitly so as to use pack_to or unpack_from if the structures that I am dealing with are not simple arrays of a single type. In my particular use case of de/encoding messages from a remote device that is sometimes forwarding on collected information to & from the devices that it controls the endianness is not always consistent between message elements in a single message. It would be very nice if: a) iter_unpack.next produced an iterator that optionally took an additional parameter of a format string, (with endianness permitted), to replace the current format string in use. b) there was a matching iter_pack function that the next method took either more data to pack into the buffer extending it or a new format string, either as a named parameter or with an exposed set_fmt method on the packer. This would allow my specific use case and the ones where a buffer or stream is constructed of blocks consisting of a byte or word that specifies the data type(s) to follow (and sometimes a count) followed by the actual data. -- Steve (Gadget) Barnes Any opinions in this message are my personal opinions and do not reflect those of my employer.
participants (2)
-
Greg Ewing
-
Steve Barnes