清 AGC src-tauri 既有 rustfmt 欠账:5 个文件纯格式化,无逻辑变更

- `check:rustfmt` 跑 server-rs 与 AGC src-tauri 两条命令,CI 在 server-rs 那条就退出,AGC 侧欠账从未被跑到;本提交只做格式化,不改任何语义
- `src/agent.rs`:`mod` 声明与 `pub(crate) use` 按 rustfmt 排序口径调整 `direct_codex_references` 的位置(声明顺序无语义影响)
- `src/assets.rs`:`infer_canvas_export_asset_kind` 的 `else if` 条件行重排;两处 `assert!` 参数按 use_small_heuristics 折叠;两个返回 `Result<..>` 的函数签名断行
- `src/project/asset_export.rs`:`resolve_export_source_file` 签名折成单行,`File::open`/`File::create` 两行重排,用例里 `SaveLocalProjectAssetFileInput` 实参折叠
- `src/tests/asset_rename.rs`:两处用例断行/折叠
- `src/tests/asset_delete.rs`:一处 `assert!` 实参折叠及连带重排
- 已用 `cargo fmt -p genarrative-ai-game-creator-shell -- --check <这 5 个文件>` 与整 crate `cargo fmt --all -- --check` 双重验证通过
This commit is contained in:
2026-09-11 12:25:49 +08:00
parent 775b3792cd
commit 1801d2b227
5 changed files with 45 additions and 43 deletions
@@ -14,9 +14,9 @@ mod codex_cli;
mod codex_provider_proxy;
mod direct_codex_attachments;
mod direct_codex_audit;
mod direct_codex_references;
mod direct_project_history;
mod direct_project_turn_history;
mod direct_codex_references;
mod direct_runtime;
mod direct_tool_bridge;
mod direct_tools_mcp;
@@ -41,9 +41,9 @@ pub(crate) use codex_cli::{
pub(crate) use codex_provider_proxy::*;
pub(crate) use direct_codex_attachments::*;
pub(crate) use direct_codex_audit::*;
pub(crate) use direct_codex_references::*;
pub(crate) use direct_project_history::*;
pub(crate) use direct_project_turn_history::*;
pub(crate) use direct_codex_references::*;
pub(crate) use direct_runtime::*;
pub(crate) use direct_tool_bridge::*;
pub(crate) use direct_tools_mcp::*;
@@ -1650,7 +1650,8 @@ pub(crate) fn infer_canvas_export_asset_kind(
|| contains_any(layer_type, &["序列", "动画", "动作"])
{
"character-animation"
} else if file.starts_with("media/") || contains_any(layer_type, &["音频", "音乐", "音效"]) {
} else if file.starts_with("media/") || contains_any(layer_type, &["音频", "音乐", "音效"])
{
"audio"
} else if contains_any(layer_type, &["角色"]) {
"character"
@@ -23,10 +23,7 @@ pub(crate) struct SaveLocalProjectAssetFileResult {
pub(crate) byte_len: u64,
}
fn resolve_export_source_file(
root: &Path,
relative_path: &str,
) -> Result<PathBuf, String> {
fn resolve_export_source_file(root: &Path, relative_path: &str) -> Result<PathBuf, String> {
let normalized = normalize_relative_path(relative_path.trim())?;
if normalized.is_empty() {
return Err("待保存的素材路径不能为空".to_string());
@@ -76,10 +73,9 @@ pub(crate) fn save_local_project_asset_file_at(
let source = resolve_export_source_file(root, &input.relative_path)?;
let destination = resolve_export_destination_file(&input.destination_path)?;
let mut reader =
File::open(&source).map_err(|error| format!("打开素材文件失败:{error}"))?;
let mut writer = File::create(&destination)
.map_err(|error| format!("创建保存目标失败:{error}"))?;
let mut reader = File::open(&source).map_err(|error| format!("打开素材文件失败:{error}"))?;
let mut writer =
File::create(&destination).map_err(|error| format!("创建保存目标失败:{error}"))?;
let mut buffer = vec![0_u8; ASSET_EXPORT_COPY_CHUNK_BYTES];
let mut byte_len = 0_u64;
loop {
@@ -215,16 +211,14 @@ mod tests {
assert!(blank.contains("保存目标路径不能为空"), "{blank}");
let missing_parent_directory = unique_asset_export_directory("absent");
let missing_parent = save_local_project_asset_file_at(
SaveLocalProjectAssetFileInput {
project_path: root.to_string_lossy().into_owned(),
relative_path: "assets/hero.png".to_string(),
destination_path: missing_parent_directory
.join("hero-copy.png")
.to_string_lossy()
.into_owned(),
},
)
let missing_parent = save_local_project_asset_file_at(SaveLocalProjectAssetFileInput {
project_path: root.to_string_lossy().into_owned(),
relative_path: "assets/hero.png".to_string(),
destination_path: missing_parent_directory
.join("hero-copy.png")
.to_string_lossy()
.into_owned(),
})
.expect_err("missing parent directory must fail");
assert!(
missing_parent.contains("保存目标的父目录不存在"),
@@ -230,9 +230,15 @@ fn asset_delete_removes_referencing_versions_when_confirmed() {
assert!(root.join(&result.local_path).is_file());
let manifest = read_manifest_for_project(&root).expect("read manifest after delete");
assert!(manifest.assets.iter().all(|asset| asset.id != removed_asset_id));
assert!(manifest
.assets
.iter()
.all(|asset| asset.id != removed_asset_id));
assert!(
manifest.assets.iter().any(|asset| asset.id == kept_asset_id),
manifest
.assets
.iter()
.any(|asset| asset.id == kept_asset_id),
"未被删除的素材登记必须保留"
);
assert_eq!(
@@ -252,7 +258,10 @@ fn asset_delete_removes_referencing_versions_when_confirmed() {
.all(|version| !version_references_asset(version, &removed_asset_id)),
"剩余版本不得再引用被删素材"
);
assert_eq!(manifest.versions[0].version_id, before.versions[0].version_id);
assert_eq!(
manifest.versions[0].version_id,
before.versions[0].version_id
);
fs::remove_dir_all(root).ok();
}
@@ -267,8 +276,8 @@ fn asset_reference_projection_lists_only_versions_using_the_asset() {
register_agent_version(&root);
let manifest = read_manifest_for_project(&root).expect("read manifest");
let late_references =
read_manifest_asset_references_at(&root, &late_asset_id).expect("read late asset references");
let late_references = read_manifest_asset_references_at(&root, &late_asset_id)
.expect("read late asset references");
assert_eq!(late_references.asset_id, late_asset_id);
assert_eq!(late_references.versions.len(), 1);
assert_eq!(
@@ -324,7 +333,10 @@ fn version_removal_stays_rejected_outside_the_confirmed_asset_delete() {
Ok(())
})
.expect_err("a plain manifest mutation must not delete versions");
assert!(error.contains("不可修改、删除或重排"), "unexpected error: {error}");
assert!(
error.contains("不可修改、删除或重排"),
"unexpected error: {error}"
);
let reordered = mutate_manifest_at(&root, |manifest| {
manifest.versions.swap(0, 1);
@@ -349,14 +361,9 @@ fn asset_delete_enforces_revision_and_identity_cas() {
let asset_id = register_asset_delete_fixture_asset(&root, "assets/hero.png", "art-asset-plan");
let revision_before = project_revision(&root);
let revision_error = delete_manifest_asset_at(
&root,
"project-1",
revision_before + 1,
&asset_id,
true,
)
.expect_err("stale revision must be rejected");
let revision_error =
delete_manifest_asset_at(&root, "project-1", revision_before + 1, &asset_id, true)
.expect_err("stale revision must be rejected");
assert_eq!(revision_error, "project-revision-conflict");
let identity_error =
@@ -364,8 +371,9 @@ fn asset_delete_enforces_revision_and_identity_cas() {
.expect_err("cross-project identity must be rejected");
assert_eq!(identity_error, "project-identity-conflict");
let missing_error = delete_manifest_asset_at(&root, "project-1", revision_before, "absent", true)
.expect_err("missing asset must be rejected");
let missing_error =
delete_manifest_asset_at(&root, "project-1", revision_before, "absent", true)
.expect_err("missing asset must be rejected");
assert!(
missing_error.contains("项目资源不存在"),
"unexpected error: {missing_error}"
@@ -92,8 +92,8 @@ fn rename_local_project_asset_is_a_noop_for_the_same_file_name() {
let manifest_before = fs::read(root.join(".agent/manifest.json")).expect("manifest bytes");
let revision_before = asset_rename_revision(&root);
let result = rename_local_project_asset_at(&root, &asset_id, "hero.png", None)
.expect("no-op rename");
let result =
rename_local_project_asset_at(&root, &asset_id, "hero.png", None).expect("no-op rename");
assert_eq!(result.previous_local_path, "assets/hero.png");
assert_eq!(result.asset.local_path, "assets/hero.png");
@@ -128,9 +128,7 @@ fn rename_local_project_asset_rejects_unsafe_file_names() {
let error = rename_local_project_asset_at(&root, &asset_id, name, None)
.expect_err("unsafe file name must be rejected");
assert!(
error.contains("不能为空")
|| error.contains("路径分隔符")
|| error.contains(".."),
error.contains("不能为空") || error.contains("路径分隔符") || error.contains(".."),
"意外错误:{error}"
);
}
@@ -203,7 +201,8 @@ fn rename_local_project_asset_rejects_extension_changes() {
#[test]
fn rename_local_project_asset_rejects_existing_target_name() {
let (root, asset_id) = asset_rename_project_fixture();
write_local_project_file_at(&root, "assets/other.png", "other-bytes").expect("other asset file");
write_local_project_file_at(&root, "assets/other.png", "other-bytes")
.expect("other asset file");
let manifest_before = fs::read(root.join(".agent/manifest.json")).expect("manifest bytes");
let error = rename_local_project_asset_at(&root, &asset_id, "other.png", None)