diff --git a/server-rs/crates/platform-tripo/src/common/error.rs b/server-rs/crates/platform-tripo/src/common/error.rs index e599b1d49..6697c95c9 100644 --- a/server-rs/crates/platform-tripo/src/common/error.rs +++ b/server-rs/crates/platform-tripo/src/common/error.rs @@ -62,6 +62,8 @@ impl fmt::Display for TripoField { pub enum TripoValidationReason { Required, InvalidCombination, + /// 取值超出该字段允许的长度或范围,与「参数组合互斥」区分开。 + OutOfRange, } impl fmt::Display for TripoValidationReason { @@ -69,6 +71,7 @@ impl fmt::Display for TripoValidationReason { f.write_str(match self { Self::Required => "required", Self::InvalidCombination => "invalid combination", + Self::OutOfRange => "out of range", }) } } diff --git a/server-rs/crates/platform-tripo/src/common/validation.rs b/server-rs/crates/platform-tripo/src/common/validation.rs index 00dfaa4f6..ee19b7da8 100644 --- a/server-rs/crates/platform-tripo/src/common/validation.rs +++ b/server-rs/crates/platform-tripo/src/common/validation.rs @@ -173,7 +173,7 @@ pub(crate) fn validate_generation_options( if face_limit < minimum || face_limit > maximum { return Err(invalid( Some(TripoField::FaceLimit), - TripoValidationReason::InvalidCombination, + TripoValidationReason::OutOfRange, &format!( "face_limit must be between {minimum} and {maximum} for the selected model and options" ), diff --git a/server-rs/crates/platform-tripo/src/text_to_model/validation.rs b/server-rs/crates/platform-tripo/src/text_to_model/validation.rs index 472379133..1c3d6751e 100644 --- a/server-rs/crates/platform-tripo/src/text_to_model/validation.rs +++ b/server-rs/crates/platform-tripo/src/text_to_model/validation.rs @@ -16,7 +16,7 @@ pub fn validate_text_to_model_params(params: &Model3dTextToModelParams) -> Resul if params.prompt.chars().count() > 1024 { return Err(TripoError::InvalidParameters { field: Some(TripoField::Prompt), - reason: TripoValidationReason::InvalidCombination, + reason: TripoValidationReason::OutOfRange, message: "prompt must not exceed 1024 characters".into(), }); } @@ -27,7 +27,7 @@ pub fn validate_text_to_model_params(params: &Model3dTextToModelParams) -> Resul { return Err(TripoError::InvalidParameters { field: Some(TripoField::NegativePrompt), - reason: TripoValidationReason::InvalidCombination, + reason: TripoValidationReason::OutOfRange, message: "negative_prompt must not exceed 255 characters".into(), }); }