mtgapi_client/api/
response.rs1use reqwest::header::HeaderMap;
2
3#[allow(dead_code)]
5pub struct ApiResponse<T> {
6 pub content: T,
7 pub page_size: Option<u32>,
8 pub count: Option<u32>,
9 pub total_count: Option<u32>,
10 pub ratelimit_limit: Option<u32>,
11 pub ratelimit_remaining: Option<u32>,
12}
13
14impl<T> ApiResponse<T> {
15 pub(crate) fn new(content: T, headers: HeaderMap) -> ApiResponse<T> {
16 let page_size: Option<u32> = if headers.contains_key("Page-Size") { Some(headers.get("Page-Size").unwrap().to_str().expect("Error parsing Page-Size Header").parse::<u32>().expect("Error converting str to u32")) } else { None };
17 let count: Option<u32> = if headers.contains_key("Count") { Some(headers.get("Count").unwrap().to_str().expect("Error parsing Count Header").parse::<u32>().expect("Error converting str to u32")) } else { None };
18 let total_count: Option<u32> = if headers.contains_key("Total-Count") { Some(headers.get("Total-Count").unwrap().to_str().expect("Error parsing Total-Count Header").parse::<u32>().expect("Error converting str to u32")) } else { None };
19 let ratelimit_limit: Option<u32> = if headers.contains_key("Ratelimit-Limit") { Some(headers.get("Ratelimit-Limit").unwrap().to_str().expect("Error parsing Ratelimit-Limit Header").parse::<u32>().expect("Error converting str to u32")) } else { None };
20 let ratelimit_remaining = if headers.contains_key("Ratelimit-Remaining") { Some(headers.get("Ratelimit-Remaining").unwrap().to_str().expect("Error parsing Ratelimit-Remaining Header").parse::<u32>().expect("Error converting str to u32")) } else { None };
21 ApiResponse {
22 content,
23 page_size,
24 count,
25 total_count,
26 ratelimit_limit,
27 ratelimit_remaining,
28 }
29 }
30}