napi-rs/crates/napi/src/js_values/boolean.rs
forehalo 2467b7139b
Introduce #[napi] procedural macro to automation development boilerplate (#696)
* napi procedural macro for basic rust/JavaScript types
* introduce the `compat-mode` for `napi` and `napi-derive` crates for backward compatible
* remove #[inline] and let compiler to decide the inline behavior
* cli now can produce the `.d.ts` file for native binding
* many tests and example for the new procedural macro

Co-authored-by: LongYinan <lynweklm@gmail.com>
2021-09-23 01:29:09 +08:00

24 lines
512 B
Rust

use std::convert::TryFrom;
use super::Value;
use crate::check_status;
use crate::{sys, Error, Result};
#[derive(Clone, Copy)]
pub struct JsBoolean(pub(crate) Value);
impl JsBoolean {
pub fn get_value(&self) -> Result<bool> {
let mut result = false;
check_status!(unsafe { sys::napi_get_value_bool(self.0.env, self.0.value, &mut result) })?;
Ok(result)
}
}
impl TryFrom<JsBoolean> for bool {
type Error = Error;
fn try_from(value: JsBoolean) -> Result<bool> {
value.get_value()
}
}