diff options
author | rtkay123 <dev@kanjala.com> | 2025-08-08 15:13:17 +0200 |
---|---|---|
committer | rtkay123 <dev@kanjala.com> | 2025-08-08 15:13:17 +0200 |
commit | 0f663ccb94581264e839bab9ae386114e8bd9973 (patch) | |
tree | 3e9794117a1e8d41c7789b2efb74dfc5684caafc /lib/warden-core/build.rs | |
parent | 7f38c6ad7d3e140b6f270f80128def938c0659d5 (diff) | |
download | warden-0f663ccb94581264e839bab9ae386114e8bd9973.tar.bz2 warden-0f663ccb94581264e839bab9ae386114e8bd9973.zip |
feat(warden): openapi
Diffstat (limited to 'lib/warden-core/build.rs')
-rw-r--r-- | lib/warden-core/build.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/warden-core/build.rs b/lib/warden-core/build.rs index be4f8f2..7ae6b6a 100644 --- a/lib/warden-core/build.rs +++ b/lib/warden-core/build.rs @@ -50,6 +50,12 @@ fn build_proto(package: &str, entity: Entity) -> Result<(), Box<dyn std::error:: format!("#[cfg(feature = \"rpc-client-{package}\")] #[cfg_attr(docsrs, doc(cfg(feature = \"rpc-client-{package}\")))]"), ); + #[cfg(feature = "serde")] + let config = add_serde(config); + + #[cfg(feature = "openapi")] + let config = add_openapi(config); + config .file_descriptor_set_path(out_dir.join(format!("{package}_descriptor.bin"))) .server_mod_attribute( @@ -69,3 +75,16 @@ fn build_proto(package: &str, entity: Entity) -> Result<(), Box<dyn std::error:: Ok(()) } + +#[cfg(all(feature = "serde", feature = "iso20022"))] +fn add_serde(config: tonic_prost_build::Builder) -> tonic_prost_build::Builder { + config.type_attribute( + ".", + "#[derive(serde::Serialize, serde::Deserialize)] #[serde(rename_all = \"snake_case\")]", + ) +} + +#[cfg(all(feature = "openapi", feature = "iso20022"))] +fn add_openapi(config: tonic_prost_build::Builder) -> tonic_prost_build::Builder { + config.type_attribute(".", "#[derive(utoipa::ToSchema)]") +} |