あまりに情報がゴチャゴチャして可視性が悪くなった場合、
階層構造にするとなんとかなるケースもあります。
使い方
一つのクラスに記述
class SampleBase < BinData::Record uint8 :val_a struct :nested do uint8 :val_b uint8 :val_c end end
とやれば
sb = SampleBase.new(:val_a => 4, :nested => {:val_b => 4, :val_c => 8} ) #>> {:val_a=>4, :nested=>{:val_b=>4, :val_c=>8}} sb.val_a #>> 4 sb.nested #>> {:val_b=>4, :val_c=>8} sb.nested.val_b #>> 4 sb.nested.val_c #>> 8
と、ちゃんと階層構造になっている事が確認できます。
別クラスで定義する
上記のサンプル以外の方法もあります。
ネストするべき物を別クラスで定義して読み込む方法です。
class SampleBase < BinData::Record uint8 :val_a nested :nested end class Nested < BinData::Record uint8 :val_b uint8 :val_c end