flutterwave_v3_models/api_responses/
custom_stat_code.rs

1use 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}