k8s_openapi/v1_30/api/core/v1/
local_object_reference.rs1#[derive(Clone, Debug, Default, PartialEq)]
5pub struct LocalObjectReference {
6 pub name: String,
8}
9
10impl crate::DeepMerge for LocalObjectReference {
11 fn merge_from(&mut self, other: Self) {
12 crate::DeepMerge::merge_from(&mut self.name, other.name);
13 }
14}
15
16impl<'de> crate::serde::Deserialize<'de> for LocalObjectReference {
17 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: crate::serde::Deserializer<'de> {
18 #[allow(non_camel_case_types)]
19 enum Field {
20 Key_name,
21 Other,
22 }
23
24 impl<'de> crate::serde::Deserialize<'de> for Field {
25 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: crate::serde::Deserializer<'de> {
26 struct Visitor;
27
28 impl crate::serde::de::Visitor<'_> for Visitor {
29 type Value = Field;
30
31 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
32 f.write_str("field identifier")
33 }
34
35 fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: crate::serde::de::Error {
36 Ok(match v {
37 "name" => Field::Key_name,
38 _ => Field::Other,
39 })
40 }
41 }
42
43 deserializer.deserialize_identifier(Visitor)
44 }
45 }
46
47 struct Visitor;
48
49 impl<'de> crate::serde::de::Visitor<'de> for Visitor {
50 type Value = LocalObjectReference;
51
52 fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
53 f.write_str("LocalObjectReference")
54 }
55
56 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error> where A: crate::serde::de::MapAccess<'de> {
57 let mut value_name: Option<String> = None;
58
59 while let Some(key) = crate::serde::de::MapAccess::next_key::<Field>(&mut map)? {
60 match key {
61 Field::Key_name => value_name = crate::serde::de::MapAccess::next_value(&mut map)?,
62 Field::Other => { let _: crate::serde::de::IgnoredAny = crate::serde::de::MapAccess::next_value(&mut map)?; },
63 }
64 }
65
66 Ok(LocalObjectReference {
67 name: value_name.unwrap_or_default(),
68 })
69 }
70 }
71
72 deserializer.deserialize_struct(
73 "LocalObjectReference",
74 &[
75 "name",
76 ],
77 Visitor,
78 )
79 }
80}
81
82impl crate::serde::Serialize for LocalObjectReference {
83 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: crate::serde::Serializer {
84 let mut state = serializer.serialize_struct(
85 "LocalObjectReference",
86 1,
87 )?;
88 crate::serde::ser::SerializeStruct::serialize_field(&mut state, "name", &self.name)?;
89 crate::serde::ser::SerializeStruct::end(state)
90 }
91}
92
93#[cfg(feature = "schemars")]
94impl crate::schemars::JsonSchema for LocalObjectReference {
95 fn schema_name() -> String {
96 "io.k8s.api.core.v1.LocalObjectReference".to_owned()
97 }
98
99 fn json_schema(__gen: &mut crate::schemars::gen::SchemaGenerator) -> crate::schemars::schema::Schema {
100 crate::schemars::schema::Schema::Object(crate::schemars::schema::SchemaObject {
101 metadata: Some(Box::new(crate::schemars::schema::Metadata {
102 description: Some("LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.".to_owned()),
103 ..Default::default()
104 })),
105 instance_type: Some(crate::schemars::schema::SingleOrVec::Single(Box::new(crate::schemars::schema::InstanceType::Object))),
106 object: Some(Box::new(crate::schemars::schema::ObjectValidation {
107 properties: [
108 (
109 "name".to_owned(),
110 crate::schemars::schema::Schema::Object(crate::schemars::schema::SchemaObject {
111 metadata: Some(Box::new(crate::schemars::schema::Metadata {
112 description: Some("Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names".to_owned()),
113 ..Default::default()
114 })),
115 instance_type: Some(crate::schemars::schema::SingleOrVec::Single(Box::new(crate::schemars::schema::InstanceType::String))),
116 ..Default::default()
117 }),
118 ),
119 ].into(),
120 required: [
121 "name".to_owned(),
122 ].into(),
123 ..Default::default()
124 })),
125 ..Default::default()
126 })
127 }
128}