Как преобразовать JsString в &str в Rust WASM

Как преобразовать экземпляр типа js_sys::JsString в &str в коде Rust WebAssembly?

Предыстория: я хотел бы преобразовать код, найденный в этом ответе 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`
// ...

person blerontin    schedule 16.11.2020    source источник
comment
@Shepmaster: Это действительно отлично работает. Не знаю, почему я не попробовал это таким образом. Пожалуйста, добавьте комментарий в качестве ответа, чтобы я мог пометить его как принятый.   -  person blerontin    schedule 16.11.2020


Ответы (1)


Как указал пользователь Shepmaster в комментариях к вопросу выше, решение так просто:

let x: String = url.into()
person Community    schedule 02.02.2021