清理角色动作持久化映射冗余

通用 JSON 解析辅助函数改用准确命名并与 active mapper 保持一致。

持久化序列帧时直接消费输入字段,避免深拷贝完整帧数组。
This commit is contained in:
2026-08-04 11:41:21 +08:00
parent 325b3fc967
commit ab4868d432
2 changed files with 11 additions and 11 deletions
@@ -6708,14 +6708,14 @@ fn fill_missing_media_identity_field(
pub(crate) async fn persist_editor_generated_asset(
state: &AppState,
input: PersistEditorGeneratedAssetInput,
mut input: PersistEditorGeneratedAssetInput,
) -> Result<EditorGeneratedAssetRecord, AppError> {
let generation_inputs_json = serialize_editor_generation_inputs(
input.asset_kind.as_deref(),
input.generation_inputs.clone(),
)?;
let image_sequence_frames_json =
serialize_editor_image_sequence_frames(input.image_sequence_frames.clone())?;
serialize_editor_image_sequence_frames(input.image_sequence_frames.take())?;
let object_key = normalize_editor_object_key(input.object_key);
let asset_object_id = normalize_optional_string(input.asset_object_id);
let image_src = normalize_editor_persisted_media_src(input.image_src, object_key.as_deref())?;
@@ -1260,11 +1260,11 @@ fn map_editor_project_snapshot(
fn map_editor_project_resource_snapshot(
snapshot: EditorProjectResourceSnapshot,
) -> Result<EditorProjectResourceRecord, SpacetimeClientError> {
let generation_inputs = parse_optional_generation_inputs_json(
let generation_inputs = parse_optional_json(
snapshot.generation_inputs_json.as_deref(),
"图片画布资源生成输入 JSON",
)?;
let image_sequence_frames = parse_optional_generation_inputs_json(
let image_sequence_frames = parse_optional_json(
snapshot.image_sequence_frames_json.as_deref(),
"图片画布资源序列帧 JSON",
)?;
@@ -1328,11 +1328,11 @@ fn map_editor_asset_folder_snapshot(
fn map_editor_asset_snapshot(
snapshot: EditorAssetSnapshot,
) -> Result<EditorAssetRecord, SpacetimeClientError> {
let generation_inputs = parse_optional_generation_inputs_json(
let generation_inputs = parse_optional_json(
snapshot.generation_inputs_json.as_deref(),
"图片画布素材生成输入 JSON",
)?;
let image_sequence_frames = parse_optional_generation_inputs_json(
let image_sequence_frames = parse_optional_json(
snapshot.image_sequence_frames_json.as_deref(),
"图片画布素材序列帧 JSON",
)?;
@@ -1371,11 +1371,11 @@ fn map_editor_asset_snapshot(
fn map_admin_editor_asset_snapshot(
snapshot: AdminEditorAssetSnapshot,
) -> Result<AdminEditorAssetRecord, SpacetimeClientError> {
let generation_inputs = parse_optional_generation_inputs_json(
let generation_inputs = parse_optional_json(
snapshot.generation_inputs_json.as_deref(),
"后台图片画布素材生成输入 JSON",
)?;
let image_sequence_frames = parse_optional_generation_inputs_json(
let image_sequence_frames = parse_optional_json(
snapshot.image_sequence_frames_json.as_deref(),
"后台图片画布素材序列帧 JSON",
)?;
@@ -1411,11 +1411,11 @@ fn map_admin_editor_asset_snapshot(
fn map_editor_showcase_asset_snapshot(
snapshot: EditorShowcaseAssetSnapshot,
) -> Result<EditorShowcaseAssetRecord, SpacetimeClientError> {
let generation_inputs = parse_optional_generation_inputs_json(
let generation_inputs = parse_optional_json(
snapshot.generation_inputs_json.as_deref(),
"陶泥儿精选素材生成输入 JSON",
)?;
let image_sequence_frames = parse_optional_generation_inputs_json(
let image_sequence_frames = parse_optional_json(
snapshot.image_sequence_frames_json.as_deref(),
"陶泥儿精选素材序列帧 JSON",
)?;
@@ -1508,7 +1508,7 @@ fn map_editor_generation_pricing_config_snapshot(
}
}
fn parse_optional_generation_inputs_json(
fn parse_optional_json(
raw_json: Option<&str>,
label: &str,
) -> Result<Option<serde_json::Value>, SpacetimeClientError> {