use std::intrinsics::transmute; use crate::dynamic_data::LearnedMove; use crate::script_implementations::wasm::export_registry::register; use crate::script_implementations::wasm::extern_ref::ExternRef; use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; use crate::static_data::MoveData; use wasmer::FunctionEnvMut; register! { fn learned_move_get_learn_method( env: FunctionEnvMut, turn_choice: ExternRef, ) -> u8 { unsafe { transmute(turn_choice.value_func(&env).unwrap().learn_method()) } } fn learned_move_get_move_data( env: FunctionEnvMut, turn_choice: ExternRef, ) -> ExternRef { ExternRef::func_new(&env, turn_choice.value_func(&env).unwrap().move_data()) } }