空白视图规则收敛到单一助手
- 新增 view_input 同时服务提交前计数校验与 SDK 参数转换 - 空白 / 纯空白视图的判定不再有两份实现,避免校验与转换漂移
This commit is contained in:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user