diff --git a/vm/src/api.rs b/vm/src/api.rs index c22b063a06..4624429b0f 100644 --- a/vm/src/api.rs +++ b/vm/src/api.rs @@ -1572,6 +1572,7 @@ impl<'vm, T, F: Any> Pushable<'vm> for Function Ok(()) } } + impl<'vm, F> Getable<'vm> for Function<&'vm Thread, F> { fn from_value(vm: &'vm Thread, value: Variants) -> Option> { Some(Function { @@ -1581,6 +1582,15 @@ impl<'vm, F> Getable<'vm> for Function<&'vm Thread, F> { } } +impl<'vm, F> Getable<'vm> for Function { + fn from_value(vm: &'vm Thread, value: Variants) -> Option { + Some(Function { + value: vm.root_value(*value.0), + _marker: PhantomData, + })//TODO not type safe + } +} + /// Trait which represents a function pub trait FunctionType { /// Returns how many arguments the function needs to be provided to call it