rustler 0.33.0

Safe Rust wrappers for creating Erlang NIF functions
Documentation
use crate::codegen_runtime::{NifReturnable, NifReturned};
use crate::error::Error;
use crate::{Env, Term};

pub enum Return<'a> {
    Term(Term<'a>),
    Error(Error),
}

unsafe impl<'b> NifReturnable for Return<'b> {
    unsafe fn into_returned(self, env: Env) -> NifReturned {
        match self {
            Return::Term(inner) => NifReturned::Term(inner.as_c_arg()),
            Return::Error(inner) => inner.into_returned(env),
        }
    }
}