From 9c850d6c4d0ed468709c2eb5340d7b64bbb9aa68 Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Mon, 11 Aug 2025 22:02:37 +0200 Subject: build(config): create crate --- lib/warden-core/build.rs | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'lib/warden-core/build.rs') diff --git a/lib/warden-core/build.rs b/lib/warden-core/build.rs index 37c1c68..9088fd7 100644 --- a/lib/warden-core/build.rs +++ b/lib/warden-core/build.rs @@ -1,12 +1,14 @@ -#[cfg(any(feature = "message", feature = "pseudonyms"))] +#[cfg(any(feature = "message", feature = "pseudonyms", feature = "configuration"))] enum Entity { #[cfg(feature = "message")] ISO2022, #[cfg(feature = "pseudonyms")] Pseudonyms, + #[cfg(feature = "configuration")] + Configuration, } -#[cfg(any(feature = "message", feature = "pseudonyms"))] +#[cfg(any(feature = "message", feature = "pseudonyms", feature = "configuration"))] impl Entity { fn protos(&self) -> Vec<&'static str> { let mut res: Vec<&'static str> = vec![]; @@ -16,6 +18,14 @@ impl Entity { vec!["proto/warden_message.proto"] } + + #[cfg(feature = "configuration")] + fn configuration_protos() -> Vec<&'static str> { + vec![ + "proto/configuration/routing.proto", + ] + } + #[cfg(feature = "pseudonyms")] fn pseudonyms_protos() -> Vec<&'static str> { vec![ @@ -35,6 +45,10 @@ impl Entity { Entity::Pseudonyms => { res.extend(pseudonyms_protos()); } + #[cfg(feature = "configuration")] + Entity::Configuration => { + res.extend(configuration_protos()); + } } res } @@ -43,7 +57,7 @@ impl Entity { fn main() -> Result<(), Box> { println!("cargo:rerun-if-changed=../../proto"); - #[cfg(any(feature = "message", feature = "pseudonyms"))] + #[cfg(any(feature = "message", feature = "pseudonyms", feature = "configuration"))] let mut protos: Vec<&'static str> = vec![]; #[cfg(feature = "message")] @@ -52,13 +66,17 @@ fn main() -> Result<(), Box> { #[cfg(feature = "pseudonyms")] protos.extend(Entity::Pseudonyms.protos()); - #[cfg(any(feature = "message", feature = "pseudonyms"))] + #[cfg(feature = "configuration")] + protos.extend(Entity::Configuration.protos()); + + #[cfg(any(feature = "message", feature = "pseudonyms", feature = "configuration"))] build_proto(&protos)?; + Ok(()) } -#[cfg(any(feature = "message", feature = "pseudonyms"))] +#[cfg(any(feature = "message", feature = "pseudonyms", feature = "configuration"))] fn build_proto(protos: &[&str]) -> Result<(), Box> { let out_dir = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap()); @@ -82,7 +100,7 @@ fn build_proto(protos: &[&str]) -> Result<(), Box> { Ok(()) } -#[cfg(all(feature = "serde", any(feature = "pseudonyms", feature = "message")))] +#[cfg(all(feature = "serde", any(feature = "pseudonyms", feature = "message", feature = "configuration")))] fn add_serde(config: tonic_prost_build::Builder) -> tonic_prost_build::Builder { let config = config.type_attribute( ".", @@ -98,7 +116,7 @@ fn add_serde(config: tonic_prost_build::Builder) -> tonic_prost_build::Builder { config } -#[cfg(all(feature = "openapi", any(feature = "message", feature = "pseudonyms")))] +#[cfg(all(feature = "openapi", any(feature = "message", feature = "pseudonyms", feature = "configuration")))] fn add_openapi(config: tonic_prost_build::Builder) -> tonic_prost_build::Builder { config.type_attribute(".", "#[derive(utoipa::ToSchema)]") } -- cgit v1.2.3