solana/sdk/program/src/wasm/instructions.rs

29 lines
753 B
Rust

//! The `Instructions` struct is a workaround for the lack of Vec<T> support in wasm-bindgen
//! (ref: https://github.com/rustwasm/wasm-bindgen/issues/111)
#![cfg(target_arch = "wasm32")]
use {crate::instruction::Instruction, wasm_bindgen::prelude::*};
#[wasm_bindgen]
#[derive(Default)]
pub struct Instructions {
instructions: Vec<Instruction>,
}
#[wasm_bindgen]
impl Instructions {
#[wasm_bindgen(constructor)]
pub fn constructor() -> Instructions {
Instructions::default()
}
pub fn push(&mut self, instruction: Instruction) {
self.instructions.push(instruction);
}
}
impl From<Instructions> for Vec<Instruction> {
fn from(instructions: Instructions) -> Self {
instructions.instructions
}
}