private void ProcessDataValue(Field f, object value, int level, int index)
        {
            //prepare value appender
            if (!_pathToDataColumn.TryGetValue(f.Path, out DataColumnAppender appender))
            {
                appender = new DataColumnAppender((DataField)f);
                _pathToDataColumn[f.Path] = appender;
            }

            appender.Add(value, level, index);
        }
        private DataColumnAppender GetAppender(Field f)
        {
            //prepare value appender
            if (!_pathToDataColumn.TryGetValue(f.Path, out DataColumnAppender appender))
            {
                appender = new DataColumnAppender((DataField)f);
                _pathToDataColumn[f.Path] = appender;
            }

            return(appender);
        }