1use crate::api;
2
3#[repr(u32)]
5#[derive(thiserror::Error, Debug, Copy, Clone, PartialEq, Eq)]
6pub enum NapiStatus {
7 #[error("napi ok")]
8 Ok = api::napi_status_napi_ok,
9 #[error("napi error: invalid arg")]
10 InvalidArg = api::napi_status_napi_invalid_arg,
11 #[error("napi error: object expected")]
12 ObjectExpected = api::napi_status_napi_object_expected,
13 #[error("napi error: string expected")]
14 StringExpected = api::napi_status_napi_string_expected,
15 #[error("napi error: name expected")]
16 NameExpected = api::napi_status_napi_name_expected,
17 #[error("napi error: function expected")]
18 FunctionExpected = api::napi_status_napi_function_expected,
19 #[error("napi error: number expected")]
20 NumberExpected = api::napi_status_napi_number_expected,
21 #[error("napi error: boolean expected")]
22 BooleanExpected = api::napi_status_napi_boolean_expected,
23 #[error("napi error: array expected")]
24 ArrayExpected = api::napi_status_napi_array_expected,
25 #[error("napi error: generic failure")]
26 GenericFailure = api::napi_status_napi_generic_failure,
27 #[error("napi error: pending exception")]
28 PendingException = api::napi_status_napi_pending_exception,
29 #[error("napi error: cancelled")]
30 Cancelled = api::napi_status_napi_cancelled,
31 #[error("napi error: escape called twice")]
32 EscapeCalledTwice = api::napi_status_napi_escape_called_twice,
33 #[error("napi error: handle scope mismatch")]
34 HandleScopeMismatch = api::napi_status_napi_handle_scope_mismatch,
35 #[error("napi error: callback scope mismatch")]
36 CallbackScopeMismatch = api::napi_status_napi_callback_scope_mismatch,
37 #[error("napi error: queue full")]
38 QueueFull = api::napi_status_napi_queue_full,
39 #[error("napi error: closing")]
40 Closing = api::napi_status_napi_closing,
41 #[error("napi error: bigint excepted")]
42 BigintExpected = api::napi_status_napi_bigint_expected,
43 #[error("napi error: date expected")]
44 DateExpected = api::napi_status_napi_date_expected,
45 #[error("napi error: arraybuffer expected")]
46 ArraybufferExpected = api::napi_status_napi_arraybuffer_expected,
47 #[error("napi error: detachable arraybuffer expected")]
48 DetachableArraybufferExpected = api::napi_status_napi_detachable_arraybuffer_expected,
49 #[error("napi error: would deadlock")]
50 WouldDeadlock = api::napi_status_napi_would_deadlock,
51}
52
53impl NapiStatus {
54 pub fn ok(&self) -> bool {
56 *self == Self::Ok
57 }
58
59 pub fn err(&self) -> bool {
61 *self != Self::Ok
62 }
63}
64
65pub type NapiResult<T> = Result<T, NapiStatus>;