public ITableWriter <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> BeginWriteTable
        <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
            T0 arg0,
            T1 arg1,
            T2 arg2,
            T3 arg3,
            T4 arg4,
            T5 arg5,
            T6 arg6,
            T7 arg7,
            T8 arg8,
            T9 arg9)
        {
            var writer = new TableWriter <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>(this);

            writer.WriteRecord(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
            return(writer);

            //var commonColumnWidth = (double)WindowWidth / array.Length;
            ////var columnOffset = (int)commonColumnWidth.Floor();
            //var currentOffsetExact = 0d;

            //foreach (var item in array)
            //{
            //	currentOffsetExact += commonColumnWidth;
            //	var rounded = (int)currentOffsetExact.Round();
            //	WriteTableElement(item, out var _cursorPosition);
            //}

            //return this;
        }
        public ITableWriter <T0> BeginWriteTableHeaders <T0>(
            string h0)
        {
            var writer = new TableWriter <T0>(this);

            writer.WriteRecordHeaders(h0);
            return(writer);
        }
        public ITableWriter <T0> BeginWriteTable <T0>(
            T0 arg0)
        {
            var writer = new TableWriter <T0>(this);

            writer.WriteRecord(arg0);
            return(writer);
        }
        public ITableWriter <T0, T1> BeginWriteTable <T0, T1>(
            T0 arg0,
            T1 arg1)
        {
            var writer = new TableWriter <T0, T1>(this);

            writer.WriteRecord(arg0, arg1);
            return(writer);
        }
        public ITableWriter <T0, T1, T2> BeginWriteTableHeaders <T0, T1, T2>(
            string h0,
            string h1,
            string h2)
        {
            var writer = new TableWriter <T0, T1, T2>(this);

            writer.WriteRecordHeaders(h0, h1, h2);
            return(writer);
        }
        public ITableWriter <T0, T1, T2, T3> BeginWriteTable <T0, T1, T2, T3>(
            T0 arg0,
            T1 arg1,
            T2 arg2,
            T3 arg3)
        {
            var writer = new TableWriter <T0, T1, T2, T3>(this);

            writer.WriteRecord(arg0, arg1, arg2, arg3);
            return(writer);
        }
        public ITableWriter <T0, T1, T2, T3, T4> BeginWriteTableHeaders <T0, T1, T2, T3, T4>(
            string h0,
            string h1,
            string h2,
            string h3,
            string h4)
        {
            var writer = new TableWriter <T0, T1, T2, T3, T4>(this);

            writer.WriteRecordHeaders(h0, h1, h2, h3, h4);
            return(writer);
        }
        public ITableWriter <T0, T1, T2, T3, T4, T5> BeginWriteTable <T0, T1, T2, T3, T4, T5>(
            T0 arg0,
            T1 arg1,
            T2 arg2,
            T3 arg3,
            T4 arg4,
            T5 arg5)
        {
            var writer = new TableWriter <T0, T1, T2, T3, T4, T5>(this);

            writer.WriteRecord(arg0, arg1, arg2, arg3, arg4, arg5);
            return(writer);
        }
        public ITableWriter <T0, T1, T2, T3, T4, T5, T6, T7> BeginWriteTableHeaders
        <T0, T1, T2, T3, T4, T5, T6, T7>(
            string h0,
            string h1,
            string h2,
            string h3,
            string h4,
            string h5,
            string h6,
            string h7)
        {
            var writer = new TableWriter <T0, T1, T2, T3, T4, T5, T6, T7>(this);

            writer.WriteRecordHeaders(h0, h1, h2, h3, h4, h5, h6, h7);
            return(writer);
        }
        public ITableWriter <T0, T1, T2, T3, T4, T5, T6, T7, T8> BeginWriteTable
        <T0, T1, T2, T3, T4, T5, T6, T7, T8>(
            T0 arg0,
            T1 arg1,
            T2 arg2,
            T3 arg3,
            T4 arg4,
            T5 arg5,
            T6 arg6,
            T7 arg7,
            T8 arg8)
        {
            var writer = new TableWriter <T0, T1, T2, T3, T4, T5, T6, T7, T8>(this);

            writer.WriteRecord(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
            return(writer);
        }