Add pre-commit config

This commit is contained in:
2023-09-24 22:49:42 +02:00
parent 2b26503cf1
commit 6d4765dc75
12 changed files with 189 additions and 271 deletions

View File

@@ -1,16 +1,19 @@
use serde::{Deserialize, Serialize};
#[derive(Deserialize)]
pub struct Pagination {
#[serde(default = "default_page")]
pub page: usize,
#[serde(default = "default_size")]
pub size: usize
pub size: usize,
}
fn default_page() -> usize { 1 }
fn default_size() -> usize { 50 }
fn default_page() -> usize {
1
}
fn default_size() -> usize {
50
}
impl Pagination {
pub fn skip(&self) -> i64 {
@@ -22,28 +25,29 @@ impl Pagination {
}
}
#[derive(Serialize)]
pub struct Page<T> where T: Serialize {
pub struct Page<T>
where
T: Serialize,
{
pub items: Vec<T>,
pub total: usize,
pub page: usize,
pub size: usize,
pub pages: usize
pub pages: usize,
}
impl<T> Page<T> where T: Serialize {
pub fn create(
items: Vec<T>,
items_count: i64,
pagination: Pagination
) -> Self {
impl<T> Page<T>
where
T: Serialize,
{
pub fn create(items: Vec<T>, items_count: i64, pagination: Pagination) -> Self {
Self {
items,
total: items_count.try_into().unwrap(),
page: pagination.page,
size: pagination.size,
pages: (items_count as f64 / pagination.size as f64).ceil() as usize
pages: (items_count as f64 / pagination.size as f64).ceil() as usize,
}
}
}