From eda9da4d8dea79f207c7974e1464f3a2928ca807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 19 Sep 2026 13:02:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E7=82=B9=E7=BB=B4=E6=8A=A4=20model3d?= =?UTF-8?q?=20=E7=9A=84=20ts-rs=20=E5=AF=BC=E5=87=BA=E6=A0=B9=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 model3d/mod.rs 新增 model3d_ts_export_dir 宏,集中定义仓库相对导出根路径 common、image_to_model、multiview_to_model、text_to_model 改为调用宏并只声明各自子目录名 --- .../shared-contracts/src/model3d/common/mod.rs | 5 +---- .../src/model3d/image_to_model/mod.rs | 6 ++---- .../crates/shared-contracts/src/model3d/mod.rs | 14 ++++++++++++++ .../src/model3d/multiview_to_model/mod.rs | 6 ++---- .../src/model3d/text_to_model/mod.rs | 6 ++---- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/server-rs/crates/shared-contracts/src/model3d/common/mod.rs b/server-rs/crates/shared-contracts/src/model3d/common/mod.rs index a4c3916b8..dfb3b03fa 100644 --- a/server-rs/crates/shared-contracts/src/model3d/common/mod.rs +++ b/server-rs/crates/shared-contracts/src/model3d/common/mod.rs @@ -1,7 +1,4 @@ -pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = concat!( - env!("CARGO_MANIFEST_DIR"), - "/../../../packages/shared/src/contracts/model3d/common/" -); +pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = crate::model3d::model3d_ts_export_dir!("common/"); mod compression; mod export_orientation; diff --git a/server-rs/crates/shared-contracts/src/model3d/image_to_model/mod.rs b/server-rs/crates/shared-contracts/src/model3d/image_to_model/mod.rs index 70006ce90..fc2591742 100644 --- a/server-rs/crates/shared-contracts/src/model3d/image_to_model/mod.rs +++ b/server-rs/crates/shared-contracts/src/model3d/image_to_model/mod.rs @@ -1,7 +1,5 @@ -pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = concat!( - env!("CARGO_MANIFEST_DIR"), - "/../../../packages/shared/src/contracts/model3d/image-to-model/" -); +pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = + crate::model3d::model3d_ts_export_dir!("image-to-model/"); mod request; diff --git a/server-rs/crates/shared-contracts/src/model3d/mod.rs b/server-rs/crates/shared-contracts/src/model3d/mod.rs index 3293af64e..1a5cffa72 100644 --- a/server-rs/crates/shared-contracts/src/model3d/mod.rs +++ b/server-rs/crates/shared-contracts/src/model3d/mod.rs @@ -1,5 +1,19 @@ //! Provider-neutral 3D model generation contracts. +/// 3D 模型契约的 ts-rs 生成根目录;各子目录只追加自己的目录名, +/// 避免仓库相对路径在多处重复维护。 +macro_rules! model3d_ts_export_dir { + ($subdirectory:literal) => { + concat!( + env!("CARGO_MANIFEST_DIR"), + "/../../../packages/shared/src/contracts/model3d/", + $subdirectory + ) + }; +} + +pub(crate) use model3d_ts_export_dir; + pub mod common; pub mod image_to_model; pub mod multiview_to_model; diff --git a/server-rs/crates/shared-contracts/src/model3d/multiview_to_model/mod.rs b/server-rs/crates/shared-contracts/src/model3d/multiview_to_model/mod.rs index 48aeae756..cea6cb4d8 100644 --- a/server-rs/crates/shared-contracts/src/model3d/multiview_to_model/mod.rs +++ b/server-rs/crates/shared-contracts/src/model3d/multiview_to_model/mod.rs @@ -1,7 +1,5 @@ -pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = concat!( - env!("CARGO_MANIFEST_DIR"), - "/../../../packages/shared/src/contracts/model3d/multiview-to-model/" -); +pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = + crate::model3d::model3d_ts_export_dir!("multiview-to-model/"); mod request; diff --git a/server-rs/crates/shared-contracts/src/model3d/text_to_model/mod.rs b/server-rs/crates/shared-contracts/src/model3d/text_to_model/mod.rs index 569acfc33..70861cabb 100644 --- a/server-rs/crates/shared-contracts/src/model3d/text_to_model/mod.rs +++ b/server-rs/crates/shared-contracts/src/model3d/text_to_model/mod.rs @@ -1,7 +1,5 @@ -pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = concat!( - env!("CARGO_MANIFEST_DIR"), - "/../../../packages/shared/src/contracts/model3d/text-to-model/" -); +pub(crate) const MODEL3D_TS_EXPORT_DIR: &str = + crate::model3d::model3d_ts_export_dir!("text-to-model/"); mod request; mod response;