k8s_openapi_codegen_common/templates/
mod.rs

1#![allow(clippy::needless_raw_string_hashes)]
2
3pub(crate) mod impl_deserialize;
4
5pub(crate) mod impl_listable_resource;
6
7pub(crate) mod impl_metadata;
8
9pub(crate) mod impl_resource;
10
11pub(crate) mod impl_schema;
12
13pub(crate) mod impl_serialize;
14
15pub(crate) mod int_or_string;
16
17pub(crate) mod json_schema_props_or;
18
19pub(crate) mod newtype;
20
21pub(crate) mod patch;
22
23pub(crate) mod r#struct;
24
25pub(crate) mod struct_deep_merge;
26
27pub(crate) mod type_header;
28
29pub(crate) mod watch_event;
30
31#[derive(Clone, Copy, Default)]
32pub(crate) struct Generics<'a> {
33    pub(crate) type_part: Option<&'a str>,
34    pub(crate) where_part: Option<&'a str>,
35}
36
37pub(crate) struct Property<'a> {
38    pub(crate) name: &'a str,
39    pub(crate) comment: Option<&'a str>,
40    pub(crate) field_name: std::borrow::Cow<'static, str>,
41    pub(crate) field_type_name: String,
42    pub(crate) required: PropertyRequired,
43    pub(crate) is_flattened: bool,
44    pub(crate) merge_type: &'a crate::swagger20::MergeType,
45}
46
47#[derive(Clone, Copy)]
48pub(crate) enum PropertyRequired {
49    Required { is_default: bool },
50    Optional,
51
52    // TODO:
53    // This was added in 6cff2149f3334a220f1827b6740fcac54783b6c3 but then stopped being used because of
54    // https://github.com/Arnavion/k8s-openapi/issues/103
55    #[allow(unused)]
56    OptionalDefault,
57}
58
59#[derive(Clone, Copy)]
60pub(crate) struct ResourceMetadata<'a> {
61    pub(crate) api_version: &'a str,
62    pub(crate) group: &'a str,
63    pub(crate) kind: &'a str,
64    pub(crate) version: &'a str,
65    pub(crate) list_kind: Option<&'a str>,
66    pub(crate) metadata_ty: Option<&'a str>,
67    pub(crate) url_path_segment_and_scope: (&'a str, &'a str),
68}
69
70#[derive(Clone, Copy)]
71pub(crate) enum DateTimeSerializationFormat {
72    Default,
73    SixDecimalDigits,
74    ZeroDecimalDigits,
75}