// Kyoo - A portable and vast media library solution. // Copyright (c) Kyoo. // // See AUTHORS.md and LICENSE file in the project root for full license information. // // Kyoo is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // Kyoo is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Kyoo. If not, see . namespace Kyoo.Abstractions.Controllers { /// /// Information about the pagination. How many items should be displayed and where to start. /// public struct Pagination { /// /// The count of items to return. /// public int Limit { get; set; } /// /// Where to start? Using the given sort. /// public int? AfterID { get; set; } /// /// Should the previous page be returned instead of the next? /// public bool Reverse { get; set; } /// /// Create a new with default values. /// public Pagination() { Limit = 50; AfterID = null; Reverse = false; } /// /// Create a new instance. /// /// Set the value /// Set the value. If not specified, it will start from the start /// Should the previous page be returned instead of the next? public Pagination(int count, int? afterID = null, bool reverse = false) { Limit = count; AfterID = afterID; Reverse = reverse; } /// /// Implicitly create a new pagination from a limit number. /// /// Set the value /// A new instance public static implicit operator Pagination(int limit) => new(limit); } }