/// <inheritdoc/>
        public virtual ValueTask <Page> GetPageAsync(PagedMenu menu)
        {
            var offset    = menu.CurrentPageIndex * ItemsPerPage;
            var remainder = Array.Length - offset;
            var segment   = new ArraySegment <T>(Array, offset, ItemsPerPage > remainder
                ? remainder
                : ItemsPerPage);
            var page = Formatter(menu, segment);

            return(new(page));
        }
 /// <inheritdoc/>
 public virtual ValueTask<Page> GetPageAsync(PagedMenu menu)
 {
     var page = Pages[menu.CurrentPageIndex];
     return new(page);
 }
 /// <inheritdoc/>
 public ValueTask <Page> GetPageAsync(PagedMenu menu)
 => new ValueTask <Page>(Pages[menu.CurrentPageIndex]);