nodex_api/value/
boolean.rs

1use crate::{api, prelude::*};
2use std::{mem::MaybeUninit, os::raw::c_char};
3
4#[derive(Copy, Clone, Debug)]
5pub struct JsBoolean(pub(crate) JsValue);
6
7impl JsBoolean {
8    pub(crate) fn from_value(value: JsValue) -> JsBoolean {
9        JsBoolean(value)
10    }
11
12    /// This API is used to return the JavaScript singleton object that is used to represent the
13    /// given boolean value.
14    #[inline]
15    pub fn new(env: NapiEnv, value: bool) -> NapiResult<JsBoolean> {
16        let value = napi_call!(=napi_get_boolean, env, value);
17        Ok(JsBoolean(JsValue::from_raw(env, value)))
18    }
19
20    /// If a non-boolean napi_value is passed in it returns napi_boolean_expected.
21    /// This API returns the C boolean primitive equivalent of the given JavaScript Boolean.
22    #[inline]
23    pub fn get(&self) -> NapiResult<bool> {
24        let value = napi_call!(=napi_get_value_bool, self.env(), self.raw());
25        Ok(value)
26    }
27}
28
29napi_value_t!(JsBoolean);
30
31impl NapiValueCheck for JsBoolean {
32    fn check(&self) -> NapiResult<bool> {
33        Ok(self.kind()? == NapiValuetype::Boolean)
34    }
35}