Iterable readArray(String fieldName) { int arrayEndOffset = readInt32() + _offset; List items = []; while (_offset < arrayEndOffset) { items.add(_readField(fieldName)); } return items; }