🟢 P3 | parse_markdown_separate 多余的 String clone #46

Closed
opened 2026-06-06 12:33:03 +08:00 by wangdl · 1 comment
Owner

背景

ffi_zx_document_ffi_parse_markdown_separate 中 std::str::from_utf8 返回 &str,再 s.to_string() clone 成 String 传给 parse_markdown。parse_markdown 的实际实现只需要 &str(内部标记函数签名为 String 是因为 UniFFI 要求)。

修复方案

保持 to_string()(parse_markdown FFI 签名是 String,若改为 &str 需单独暴露内部接口)。或新增内部 fn parse_markdown_str(s: &str) 让两处调用。

位置

crates/zx_document_ffi/src/lib.rs:189-190

## 背景 ffi_zx_document_ffi_parse_markdown_separate 中 std::str::from_utf8 返回 &str,再 s.to_string() clone 成 String 传给 parse_markdown。parse_markdown 的实际实现只需要 &str(内部标记函数签名为 String 是因为 UniFFI 要求)。 ## 修复方案 保持 to_string()(parse_markdown FFI 签名是 String,若改为 &str 需单独暴露内部接口)。或新增内部 fn parse_markdown_str(s: &str) 让两处调用。 ## 位置 crates/zx_document_ffi/src/lib.rs:189-190
wangdl added this to the M6:Code Review 质量完善(2026-06-06) milestone 2026-06-06 12:33:03 +08:00
Author
Owner

审查结论 (2026-06-06)

结论

to_string() 是必要的:crate::parse_markdown() 的 FFI 签名要求 String(UniFFI #[uniffi::export] 不允许 &str)。新增内部函数需要改动过大,性价比不高。

状态

无需修改,by design。

## 审查结论 (2026-06-06) ### 结论 `to_string()` 是必要的:`crate::parse_markdown()` 的 FFI 签名要求 `String`(UniFFI `#[uniffi::export]` 不允许 `&str`)。新增内部函数需要改动过大,性价比不高。 ### 状态 ✅ 无需修改,by design。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/zhixi-document-runtime#46
No description provided.