public static string ToLegacyFormat(this Action action)
        {
            return(string.Create(TotalWidth, action, (span, state) =>
            {
                span.Fill(' ');

                var titleSpan = span.Slice(TitleStart, TitleWidth);
                var dueDateSpan = span.Slice(DueDateStart, DueDateWidth);

                state.Title?.AsSpan(0, Math.Min(TitleWidth, state.Title.Length)).CopyTo(titleSpan);

                state.DueDate?.TryFormat(dueDateSpan, out _, DueDateFormat);
            }));
        }
Example #2
0
        public static string ToLegacyFormat(this Action action)
        {
            var buffer = ArrayPool <char> .Shared.Rent(TotalWidth);

            string result;

            try
            {
                Array.Fill(buffer, ' ');

                action.Title?.CopyTo(0, buffer, TitleStart, Math.Min(TitleWidth, action.Title.Length));

                action.DueDate?.ToString(DueDateFormat).CopyTo(0, buffer, DueDateStart, DueDateWidth);

                result = new string(buffer);
            }
            finally
            {
                ArrayPool <char> .Shared.Return(buffer);
            }

            return(result);
        }