summaryrefslogtreecommitdiff
path: root/ext/napi/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/napi/lib.rs')
-rw-r--r--ext/napi/lib.rs33
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(),
})