如何在 Rust WASM 中将 JsString 转换为 &str?

3

我如何将类型为 js_sys::JsString 的实例在 Rust WebAssembly 代码中转换为 &str

背景:我想将此 SO 回答中的代码转换为 Rust。我无法将js_sys::encode_uri_component的输出作为值参数传递给web_sys::Element::set_attribute

let url = JsString::from("data:text/plain;charset=utf-8,");
url = url.concat(&js_sys::encode_uri_component(&text));

let anchor = document.create_element("a")
    .and_then(|elm| elm.dyn_into::<web_sys::HtmlElement>())?;
anchor.set_attribute("href", &url)?;  // Error: expected `str`, found struct `js_sys::JsString`
// ...

3
let x: String = url.into() - Shepmaster
@Shepmaster:确实很好用。不知道为什么我之前没有尝试过这种方法。请将评论添加为答案,这样我就可以标记为已接受。 - blerontin
1个回答

3

正如用户Shepmaster在上面的问题评论中所指出的,解决方案就是这么简单:

let x: String = url.into()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接