fluvio_controlplane_metadata/spg/
mod.rs

1mod spec;
2mod status;
3pub mod store;
4
5pub use spec::*;
6pub use status::*;
7
8#[cfg(feature = "k8")]
9mod k8;
10#[cfg(feature = "k8")]
11pub use k8::*;
12
13mod convert {
14
15    use crate::core::{Spec, Status, Removable, Creatable};
16    use crate::extended::{ObjectType, SpecExt};
17    use super::*;
18
19    impl Spec for SpuGroupSpec {
20        const LABEL: &'static str = "SpuGroup";
21
22        type Status = SpuGroupStatus;
23
24        type Owner = Self;
25        type IndexKey = String;
26    }
27
28    impl SpecExt for SpuGroupSpec {
29        const OBJECT_TYPE: ObjectType = ObjectType::SpuGroup;
30    }
31
32    impl Removable for SpuGroupSpec {
33        type DeleteKey = String;
34    }
35
36    impl Creatable for SpuGroupSpec {}
37
38    impl Status for SpuGroupStatus {}
39
40    #[cfg(feature = "k8")]
41    mod extended {
42
43        use crate::store::k8::K8ExtendedSpec;
44        use crate::store::k8::K8ConvertError;
45        use crate::store::k8::K8MetaItem;
46        use crate::store::MetadataStoreObject;
47        use crate::k8_types::K8Obj;
48        use crate::store::k8::default_convert_from_k8;
49
50        use super::SpuGroupSpec;
51        use super::K8SpuGroupSpec;
52
53        impl K8ExtendedSpec for SpuGroupSpec {
54            type K8Spec = K8SpuGroupSpec;
55
56            fn convert_from_k8(
57                k8_obj: K8Obj<Self::K8Spec>,
58                multi_namespace_context: bool,
59            ) -> Result<MetadataStoreObject<Self, K8MetaItem>, K8ConvertError<Self::K8Spec>>
60            {
61                default_convert_from_k8(k8_obj, multi_namespace_context)
62            }
63
64            fn convert_status_from_k8(status: Self::Status) -> Self::Status {
65                status
66            }
67
68            fn into_k8(self) -> Self::K8Spec {
69                self.into()
70            }
71        }
72    }
73}