空白视图规则收敛到单一助手

- 新增 view_input 同时服务提交前计数校验与 SDK 参数转换
- 空白 / 纯空白视图的判定不再有两份实现,避免校验与转换漂移
This commit is contained in:
2026-09-22 15:49:34 +08:00
parent be07eb79c6
commit 09f0c51b81
@@ -30,11 +30,7 @@ impl TripoProviderClient {
}
if [left, back, right]
.into_iter()
.filter(|value| {
value
.as_deref()
.is_some_and(|value| !value.trim().is_empty())
})
.filter(|value| view_input(*value).is_some())
.count()
== 0
{
@@ -69,12 +65,13 @@ impl TripoProviderClient {
Ok(TripoTaskHandle { task_id })
}
}
/// 与提交前校验保持一致:空白视图按未提供处理。
fn optional_view(value: &Option<String>) -> Option<FileInput> {
/// 空白(含纯空白视图按未提供处理:提交前校验与 SDK 参数转换共用这一条规则
fn view_input(value: &Option<String>) -> Option<FileInput> {
value
.as_deref()
.filter(|value| !value.trim().is_empty())
.map(|value| FileInput::from(value.trim()))
.map(str::trim)
.filter(|value| !value.is_empty())
.map(FileInput::from)
}
fn to_sdk_params(
@@ -88,9 +85,9 @@ fn to_sdk_params(
right,
} => MultiviewToModelParams::from_views([
Some(FileInput::from(front.trim())),
optional_view(left),
optional_view(back),
optional_view(right),
view_input(left),
view_input(back),
view_input(right),
]),
Model3dMultiviewInputs::TaskId { task_id } => {
MultiviewToModelParams::from_task_id(task_id.trim().to_owned())