Complete refactor of the FFI to use handles instead of pointers.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -146,10 +146,10 @@ fn effect_parameter_get_type(
|
||||
) -> WasmResult<u8> {
|
||||
let value = get_value_arc!(parameter, env);
|
||||
wasm_ok(match value.deref() {
|
||||
EffectParameter::Bool(_, _) => 1,
|
||||
EffectParameter::Int(_, _) => 2,
|
||||
EffectParameter::Float(_, _) => 3,
|
||||
EffectParameter::String(_, _) => 4,
|
||||
EffectParameter::Bool(_) => 1,
|
||||
EffectParameter::Int(_) => 2,
|
||||
EffectParameter::Float(_) => 3,
|
||||
EffectParameter::String(_) => 4,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ fn effect_parameter_as_bool(
|
||||
) -> WasmResult<u8> {
|
||||
let value = get_value_arc!(parameter, env);
|
||||
match value.deref() {
|
||||
EffectParameter::Bool(_, b) => wasm_ok(<u8 as From<bool>>::from(*b)),
|
||||
EffectParameter::Bool(b) => wasm_ok(<u8 as From<bool>>::from(*b)),
|
||||
_ => wasm_err::<u8>(anyhow!("Unexpected parameter type. Expected bool, got {}", value), &env),
|
||||
}
|
||||
}
|
||||
@@ -172,7 +172,7 @@ fn effect_parameter_as_int(
|
||||
) -> WasmResult<i64> {
|
||||
let value = get_value_arc!(parameter, env);
|
||||
match value.deref() {
|
||||
EffectParameter::Int(_, i) => wasm_ok(*i),
|
||||
EffectParameter::Int(i) => wasm_ok(*i),
|
||||
_ => wasm_err::<i64>(anyhow!("Unexpected parameter type. Expected int, got {}", value), &env),
|
||||
}
|
||||
}
|
||||
@@ -184,7 +184,7 @@ fn effect_parameter_as_float(
|
||||
) -> WasmResult<f32> {
|
||||
let value = get_value_arc!(parameter, env);
|
||||
match value.deref() {
|
||||
EffectParameter::Float(_, f) => wasm_ok(*f),
|
||||
EffectParameter::Float(f) => wasm_ok(*f),
|
||||
_ => wasm_err::<f32>(
|
||||
anyhow!("Unexpected parameter type. Expected float, got {}", value),
|
||||
&env,
|
||||
@@ -199,7 +199,7 @@ fn effect_parameter_as_string(
|
||||
) -> WasmResult<ExternRef<StringKey>> {
|
||||
let value = get_value_arc!(parameter, env);
|
||||
match value.deref() {
|
||||
EffectParameter::String(_, s) => wasm_ok(ExternRef::<StringKey>::func_new(&env, s.clone().into())),
|
||||
EffectParameter::String(s) => wasm_ok(ExternRef::<StringKey>::func_new(&env, s.clone().into())),
|
||||
_ => wasm_err::<ExternRef<StringKey>>(
|
||||
anyhow!("Unexpected parameter type. Expected string, got {}", value),
|
||||
&env,
|
||||
|
||||
Reference in New Issue
Block a user