nodex_api/
error.rs

1use crate::api;
2
3/// napi_status
4#[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    /// check if this napi_status is ok
55    pub fn ok(&self) -> bool {
56        *self == Self::Ok
57    }
58
59    /// check if this napi_status is err
60    pub fn err(&self) -> bool {
61        *self != Self::Ok
62    }
63}
64
65pub type NapiResult<T> = Result<T, NapiStatus>;