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); })); }
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); }