Skip to main content

ras_types/domain/
responses.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct SingleResponse<T> {
5    pub data: T,
6    pub message: String,
7}
8
9impl<T> SingleResponse<T> {
10    pub fn new(data: T, message: impl Into<String>) -> Self {
11        Self {
12            data,
13            message: message.into(),
14        }
15    }
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct ListResponse<T> {
20    pub data: Vec<T>,
21    pub pagination: PaginationMeta,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct PaginationMeta {
26    pub page: u32,
27    pub per_page: u32,
28    pub total: u64,
29}