Version 0.3.0 has been released.
It now has been thoroughly battle-tested by using it from within ArraysRRBVector. ![]()
Usage has become slightly simpler and less error-prone; on the Rust side an enum is now returned with the various possible results of a function call:
pub enum ElixirFunCallResult {
/// The happy path: The function completed successfully. In Elixir, this looks like `{:ok, value}`
Success(StoredTerm),
/// An exception was raised. In Elixir, this looks like `{:error, {:exception, some_exception}}`
ExceptionRaised(StoredTerm),
/// The code attempted to exit the process using a call to `exit(val)`. In Elixir, this looks like `{:error, {:exit, val}}`
Exited(StoredTerm),
/// A raw value was thrown using `throw(val)`. In Elixir, this looks like `{:error, {:thrown, val}}`
ValueThrown(StoredTerm),
/// The function took too long to complete. In Elixir, this looks like `{:error, :timeout}`
TimedOut,
}
This way, we can be sure that all edge cases are considered when you use it in your code.






















