gpt4 book ai didi

rust - 如何将嵌套的 Vecs 与 wasm-bindgen 一起使用?

转载 作者:行者123 更新时间:2023-11-29 08:02:21 24 4
gpt4 key购买 nike

嵌套的 Vec 似乎无法与 wasm-bindgen 一起工作。对吗?

我的目标是在 Rust 中创建一个生命游戏网格,我可以将其作为行返回,而不是需要 JavaScript 处理索引的 1D Vec。我想到的两个解决方法是:

  1. 在 Rust 中实现一种自定义“迭代器”,这是一种逐行返回行的方法。
  2. 将一维数组交给 JavaScript,但用 JavaScript 编写一个包装器来处理索引并将某种迭代器暴露给消费者。

我对使用其中任何一个犹豫不决,因为我希望这个库可以被 JavaScript 和原生 Rust 使用,而且我认为在纯 Rust 领域它们都不是非常惯用的。还有其他建议吗?

最佳答案

你是对的 wasm-bindgen今天不支持像 Vec<Vec<u8>> 这样的返回类型.

WebAssembly 的一个好的经验法则是,大块数据(如向量)应始终位于同一位置,以避免损失太多性能。这意味着您可能想要探索一个接口(interface),其中 JS 对象将指针包装到 WASM 内存中,并且它的所有方法都使用行/列索引,但修改 WASM 内存以将其作为真实来源。

如果这不起作用,那么今天实现它的最佳方法就是您提到的策略之一,尽管这两种策略都需要编写一定程度的 JS 粘合代码。

关于rust - 如何将嵌套的 Vecs 与 wasm-bindgen 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52771525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com