The wire type for packed, repeated fields is 2 (reference).
Currently, Buffer.wire_for parses the field type only, regardless of whether the field is packed+repeated. It'll therefore fail when decoding a packed+repeated field.
Quick fix is to add an extra line to Decode.decode in beefcake.rb:
exp = Buffer.wire_for(fld.type)
if fld.rule == :repeated && fld.opts[:packed] then exp = 2 end
The wire type for packed, repeated fields is 2 (reference).
Currently,
Buffer.wire_for
parses the field type only, regardless of whether the field is packed+repeated. It'll therefore fail when decoding a packed+repeated field.Quick fix is to add an extra line to
Decode.decode
in beefcake.rb: