k8s_openapi_codegen_common/templates/
impl_metadata.rs

1pub(crate) fn generate(
2    mut writer: impl std::io::Write,
3    type_name: &str,
4    generics: super::Generics<'_>,
5    map_namespace: &impl crate::MapNamespace,
6    resource_metadata: &super::ResourceMetadata<'_>,
7) -> Result<(), crate::Error> {
8    if let Some(metadata_ty) = &resource_metadata.metadata_ty {
9        let local = crate::map_namespace_local_to_string(map_namespace)?;
10
11        let type_generics_impl = generics.type_part.map(|part| format!("<{part}>")).unwrap_or_default();
12        let type_generics_type = generics.type_part.map(|part| format!("<{part}>")).unwrap_or_default();
13        let type_generics_where = generics.where_part.map(|part| format!(" where {part}")).unwrap_or_default();
14
15        writeln!(
16            writer,
17            include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/templates/impl_metadata.rs")),
18            local = local,
19            type_name = type_name,
20            type_generics_impl = type_generics_impl,
21            type_generics_type = type_generics_type,
22            type_generics_where = type_generics_where,
23            metadata_type_name = metadata_ty,
24            metadata_expr = "&self.metadata",
25            metadata_mut_expr = "&mut self.metadata",
26        )?;
27    }
28
29    Ok(())
30}