paystack/models/
response.rs1use crate::utils::option_string_or_number_to_u16;
5use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
9pub struct Response<T> {
10 pub status: bool,
12 pub message: String,
14 #[serde(default)]
16 pub data: Option<T>,
17 pub meta: Option<Meta>,
19 #[serde(rename = "type")]
20 pub response_type: Option<String>,
21 pub code: Option<String>,
22}
23
24#[derive(Clone, Debug, Serialize, Deserialize, Default)]
26#[serde(rename_all = "camelCase")]
27#[serde(default)]
28pub struct Meta {
29 #[serde(deserialize_with = "option_string_or_number_to_u16")]
31 pub total: Option<u16>,
32 #[serde(deserialize_with = "option_string_or_number_to_u16")]
34 pub skipped: Option<u16>,
35 #[serde(deserialize_with = "option_string_or_number_to_u16")]
37 pub per_page: Option<u16>,
38 #[serde(deserialize_with = "option_string_or_number_to_u16")]
40 pub page: Option<u16>,
41 #[serde(deserialize_with = "option_string_or_number_to_u16")]
43 pub page_count: Option<u16>,
44 pub next: Option<String>,
45 pub previous: Option<String>,
46 pub next_step: Option<String>,
47}