openshift_openapi/v4_5/api/route/v1/
route_ingress_condition.rs1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct RouteIngressCondition {
6 pub last_transition_time: Option<k8s_openapi::apimachinery::pkg::apis::meta::v1::Time>,
8
9 pub message: Option<String>,
11
12 pub reason: Option<String>,
14
15 pub status: String,
17
18 pub type_: String,
20}
21
22impl<'de> serde::Deserialize<'de> for RouteIngressCondition {
23 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
24 #[allow(non_camel_case_types)]
25 enum Field {
26 Key_last_transition_time,
27 Key_message,
28 Key_reason,
29 Key_status,
30 Key_type_,
31 Other,
32 }
33
34 impl<'de> serde::Deserialize<'de> for Field {
35 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: serde::Deserializer<'de> {
36 struct Visitor;
37
38 impl<'de> serde::de::Visitor<'de> for Visitor {
39 type Value = Field;
40
41 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
42 f.write_str("field identifier")
43 }
44
45 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: serde::de::Error {
46 Ok(match v {
47 "lastTransitionTime" => Field::Key_last_transition_time,
48 "message" => Field::Key_message,
49 "reason" => Field::Key_reason,
50 "status" => Field::Key_status,
51 "type" => Field::Key_type_,
52 _ => Field::Other,
53 })
54 }
55 }
56
57 deserializer.deserialize_identifier(Visitor)
58 }
59 }
60
61 struct Visitor;
62
63 impl<'de> serde::de::Visitor<'de> for Visitor {
64 type Value = RouteIngressCondition;
65
66 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
67 f.write_str("RouteIngressCondition")
68 }
69
70 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: serde::de::MapAccess<'de> {
71 let mut value_last_transition_time: Option<k8s_openapi::apimachinery::pkg::apis::meta::v1::Time> = None;
72 let mut value_message: Option<String> = None;
73 let mut value_reason: Option<String> = None;
74 let mut value_status: Option<String> = None;
75 let mut value_type_: Option<String> = None;
76
77 while let Some(key) = serde::de::MapAccess::next_key::<Field>(&mut map)? {
78 match key {
79 Field::Key_last_transition_time => value_last_transition_time = serde::de::MapAccess::next_value(&mut map)?,
80 Field::Key_message => value_message = serde::de::MapAccess::next_value(&mut map)?,
81 Field::Key_reason => value_reason = serde::de::MapAccess::next_value(&mut map)?,
82 Field::Key_status => value_status = Some(serde::de::MapAccess::next_value(&mut map)?),
83 Field::Key_type_ => value_type_ = Some(serde::de::MapAccess::next_value(&mut map)?),
84 Field::Other => { let _: serde::de::IgnoredAny = serde::de::MapAccess::next_value(&mut map)?; },
85 }
86 }
87
88 Ok(RouteIngressCondition {
89 last_transition_time: value_last_transition_time,
90 message: value_message,
91 reason: value_reason,
92 status: value_status.ok_or_else(|| serde::de::Error::missing_field("status"))?,
93 type_: value_type_.ok_or_else(|| serde::de::Error::missing_field("type"))?,
94 })
95 }
96 }
97
98 deserializer.deserialize_struct(
99 "RouteIngressCondition",
100 &[
101 "lastTransitionTime",
102 "message",
103 "reason",
104 "status",
105 "type",
106 ],
107 Visitor,
108 )
109 }
110}
111
112impl serde::Serialize for RouteIngressCondition {
113 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
114 let mut state = serializer.serialize_struct(
115 "RouteIngressCondition",
116 2 +
117 self.last_transition_time.as_ref().map_or(0, |_| 1) +
118 self.message.as_ref().map_or(0, |_| 1) +
119 self.reason.as_ref().map_or(0, |_| 1),
120 )?;
121 if let Some(value) = &self.last_transition_time {
122 serde::ser::SerializeStruct::serialize_field(&mut state, "lastTransitionTime", value)?;
123 }
124 if let Some(value) = &self.message {
125 serde::ser::SerializeStruct::serialize_field(&mut state, "message", value)?;
126 }
127 if let Some(value) = &self.reason {
128 serde::ser::SerializeStruct::serialize_field(&mut state, "reason", value)?;
129 }
130 serde::ser::SerializeStruct::serialize_field(&mut state, "status", &self.status)?;
131 serde::ser::SerializeStruct::serialize_field(&mut state, "type", &self.type_)?;
132 serde::ser::SerializeStruct::end(state)
133 }
134}