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;