flutterwave_v3_models/api_responses/
custom_stat_code.rs1use reqwest::StatusCode;
2
3#[derive(Debug)]
4pub struct StatCode(StatusCode);
5
6impl Default for StatCode {
7 fn default() -> Self {
8 StatCode(StatusCode::NOT_FOUND)
9 }
10}
11
12impl<'de> serde::Deserialize<'de> for StatCode {
13 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
14 where
15 D: serde::Deserializer<'de> {
16 struct StatCodeVisitor;
17 impl<'de> serde::de::Visitor<'de> for StatCodeVisitor {
18 type Value = StatCode;
19
20 fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
21 formatter.write_str("expecting a non-zero u16 number.")
22 }
23
24 }
25 deserializer.deserialize_u16(StatCodeVisitor)
26 }
27}
28
29impl serde::Serialize for StatCode {
30 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
31 where
32 S: serde::Serializer {
33 serializer.serialize_u16(self.0.as_u16())
34 }
35}
36
37impl AsRef<StatusCode> for StatCode {
38 fn as_ref(&self) -> &StatusCode {
39 &self.0
40 }
41}
42
43impl From<StatusCode> for StatCode {
44 fn from(code: StatusCode) -> Self {
45 StatCode(code)
46 }
47}