Skip to content

Commit 59cb9d5

Browse files
refactor(stackable-versioned): Simplify crate overrides (#919)
* refactor(stackable-versioned): Simplify crate overrides * chore(stackable-versioned): Update changelog * Apply suggestions from code review --------- Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com>
1 parent 3790332 commit 59cb9d5

9 files changed

+444
-160
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#[versioned(
2+
version(name = "v1alpha1"),
3+
version(name = "v1beta1"),
4+
version(name = "v1"),
5+
k8s(
6+
group = "foo.example.org",
7+
singular = "foo",
8+
plural = "foos",
9+
namespaced,
10+
crates(
11+
kube_core = ::kube::core
12+
)
13+
)
14+
)]
15+
// ---
16+
#[derive(
17+
Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema, kube::CustomResource,
18+
)]
19+
pub struct FooSpec {
20+
#[versioned(
21+
added(since = "v1beta1"),
22+
changed(since = "v1", from_name = "bah", from_type = "u16")
23+
)]
24+
bar: usize,
25+
baz: bool,
26+
}

crates/stackable-versioned-macros/fixtures/snapshots/stackable_versioned_macros__test__k8s_snapshots@basic.rs.snap

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/stackable-versioned-macros/fixtures/snapshots/stackable_versioned_macros__test__k8s_snapshots@crate_overrides.rs.snap

Lines changed: 180 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/stackable-versioned-macros/fixtures/snapshots/stackable_versioned_macros__test__k8s_snapshots@module.rs.snap

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/stackable-versioned-macros/fixtures/snapshots/stackable_versioned_macros__test__k8s_snapshots@module_preserve.rs.snap

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/stackable-versioned-macros/src/attrs/k8s.rs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
use darling::{util::Flag, FromMeta};
2-
use proc_macro2::TokenStream;
3-
use quote::{quote, ToTokens};
42
use syn::Path;
53

64
/// This struct contains supported Kubernetes arguments.
@@ -65,29 +63,3 @@ pub(crate) struct KubernetesCrateArguments {
6563
pub(crate) serde: Option<Path>,
6664
pub(crate) serde_json: Option<Path>,
6765
}
68-
69-
impl ToTokens for KubernetesCrateArguments {
70-
fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) {
71-
let mut crate_overrides = TokenStream::new();
72-
73-
if let Some(path) = &self.k8s_openapi {
74-
crate_overrides.extend(quote! { k8s_openapi = #path, });
75-
}
76-
if let Some(path) = &self.kube_core {
77-
crate_overrides.extend(quote! { kube_core = #path, });
78-
}
79-
if let Some(path) = &self.schemars {
80-
crate_overrides.extend(quote! { schemars = #path, });
81-
}
82-
if let Some(path) = &self.serde {
83-
crate_overrides.extend(quote! { serde = #path, });
84-
}
85-
if let Some(path) = &self.serde_json {
86-
crate_overrides.extend(quote! { serde_json = #path, });
87-
}
88-
89-
if !crate_overrides.is_empty() {
90-
tokens.extend(quote! { , crates(#crate_overrides) });
91-
}
92-
}
93-
}

0 commit comments

Comments
 (0)