The idea/goal was to seperate the decoding engine (code) from the data structure descriptions (templates) in order to
decrease (inter)dependencies
reduce code by avoiding (slightly different) duplicates for different structures
So, I see your approach as the next best method, when I fail to express the structures with templates in a table.
Using a table with handler functions is certainly the most flexible way allowing for very special decoding tasks.
Thanks, hexcoder