diff options
Diffstat (limited to 'ext/napi/lib.rs')
-rw-r--r-- | ext/napi/lib.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index e76a08ed9..577545774 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -123,6 +123,38 @@ pub enum Error { WouldDeadlock, } +#[allow(clippy::from_over_into)] +impl Into<Error> for napi_status { + fn into(self) -> Error { + match self { + napi_invalid_arg => Error::InvalidArg, + napi_object_expected => Error::ObjectExpected, + napi_string_expected => Error::StringExpected, + napi_name_expected => Error::NameExpected, + napi_function_expected => Error::FunctionExpected, + napi_number_expected => Error::NumberExpected, + napi_boolean_expected => Error::BooleanExpected, + napi_array_expected => Error::ArrayExpected, + napi_generic_failure => Error::GenericFailure, + napi_pending_exception => Error::PendingException, + napi_cancelled => Error::Cancelled, + napi_escape_called_twice => Error::EscapeCalledTwice, + napi_handle_scope_mismatch => Error::HandleScopeMismatch, + napi_callback_scope_mismatch => Error::CallbackScopeMismatch, + napi_queue_full => Error::QueueFull, + napi_closing => Error::Closing, + napi_bigint_expected => Error::BigIntExpected, + napi_date_expected => Error::DateExpected, + napi_arraybuffer_expected => Error::ArrayBufferExpected, + napi_detachable_arraybuffer_expected => { + Error::DetachableArraybufferExpected + } + napi_would_deadlock => Error::WouldDeadlock, + _ => unreachable!(), + } + } +} + pub type Result = std::result::Result<(), Error>; impl From<Error> for napi_status { @@ -603,6 +635,7 @@ where ), ) }; + Ok(serde_v8::Value { v8_value: exports.into(), }) |