在JS中实例化的Rust的struct存储在wasm端的Rust的向量中,可以通过以下步骤实现:
#[derive(Default)]
pub struct MyStruct {
// 定义结构体的字段
pub field1: i32,
pub field2: String,
}
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub struct MyStruct {
// ...
}
use std::vec::Vec;
#[wasm_bindgen]
pub struct MyVector {
pub vector: Vec<MyStruct>,
}
#[wasm_bindgen]
impl MyVector {
// 添加方法来操作向量
pub fn add_struct(&mut self, my_struct: MyStruct) {
self.vector.push(my_struct);
}
// ...
}
wasm-pack build --target web
import { MyStruct, MyVector } from './pkg/my_project';
const myStruct = MyStruct.new();
myStruct.field1 = 123;
myStruct.field2 = 'example';
const myVector = MyVector.new();
myVector.add_struct(myStruct);
console.log(myVector);
以上步骤中,我们使用了wasm-bindgen工具来实现Rust和JS之间的交互,并通过向量(Vector)来存储在JS中实例化的Rust的struct。这样可以在wasm端进行高效的数据存储和处理。在实际应用中,可以根据具体需求进行进一步的优化和扩展。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云