/// <summary>
        ///
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="divider"></param>
        /// <param name="columns"></param>
        /// <param name="count"></param>
        void render_divider_line(TextWriter writer, Divider divider, ColumnState[] columns, int count)
        {
            for (int i = 0; i < count; ++i)
            {
                render_cell_divider(writer, i, count, divider, columns[i]);
            }

            writer.WriteLine();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="index"></param>
        /// <param name="count"></param>
        /// <param name="divider"></param>
        /// <param name="column"></param>
        void render_cell_divider(TextWriter writer, int index, int count, Divider divider, ColumnState column)
        {
            int padding = 0;

            if (index > 0 && !string.IsNullOrEmpty(ColumnSeparator))
            {
                if (divider.UseColumnSeparator)
                {
                    writer.Write(ColumnSeparator);
                }
                else
                {
                    padding = ColumnSeparator.Length;
                }
            }

            writer.Write(new string(divider.Char, column.Width + padding));
        }