/// Describes a page for paginated queries.
pub struct Page {
/// which page are we on, starting with 0
pub page: u32,
/// how large are the pages?
pub size: u32,
}
impl Page {
/// Constructs a new Page struct, saving some typing
#[inline]
pub fn new(page: u32, size: u32) -> Self {
Self {
page: page,
size: size,
}
}
/// Returns the `LIMIT` for a SQL Query
#[inline]
pub fn limit(&self) -> u32 {
self.size
}
/// Returns the `OFFSET` for a SQL Query
#[inline]
pub fn offset(&self) -> i64 {
self.size as i64 * self.page as i64
}
}