use std::fmt::Debug; use std::marker::Send; use serde::{Deserialize, Serialize}; #[onelauncher_macro::specta] #[derive(Clone, Serialize, Deserialize)] pub struct Paginated where T: Clone + Serialize + Send { pub total: usize, pub offset: usize, pub limit: usize, pub items: Vec, } impl Debug for Paginated { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("Paginated") .field("total", &self.total) .field("offset", &self.offset) .field("limit", &self.limit) .field("items", &self.items.len()) .finish() } } impl Paginated { #[must_use] pub const fn new(total: usize, offset: usize, limit: usize, items: Vec) -> Self { Self { total, offset, limit, items } } }