簡體   English   中英

如何將嵌套Vecs與wasm-bindgen一起使用?

[英]How do I use nested Vecs with wasm-bindgen?

看起來嵌套的Vec不能與wasm-bindgen一起使用。 那是對的嗎?

我的目標是在Rust中創建一個生命游戲網格,我可以將其作為行返回,而不是需要JavaScript處理索引的1D Vec 我想到的兩個解決方法是:

  1. 在Rust中實現一種自定義“迭代器”,這是一種逐行返回行的方法。
  2. 將一維數組交給JavaScript但在JavaScript中編寫一個包裝器來處理索引並向消費者公開某種迭代器。

我不願意使用其中任何一個,因為我希望這個庫可以被JavaScript和本機Rust使用,而且我認為這兩者在純Rust領域都不會非常慣用。 還有其他建議嗎?

你是對的,今天的wasm-bindgen不支持像Vec<Vec<u8>>這樣的返回類型。

WebAssembly的一個好的經驗法則是,大塊數據(如向量)應始終位於同一位置,以避免丟失太多性能。 這意味着您可能希望探索JS對象將指針包裝到WASM內存中的接口,並且其所有方法都使用行/列索引,但修改WASM內存以使其成為事實的來源。

如果這不成功,那么今天實現這個的最好方法是你提到的策略中的任何一個,盡管這兩個都需要編寫一些級別的JS粘合代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM