napi-rs/examples/napi/src/enum.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

27 lines
396 B
Rust

use napi::bindgen_prelude::*;
/// default enum values are continuos i32s start from 0
#[napi]
pub enum Kind {
Dog,
Cat,
Duck,
}
/// You could break the step and for an new continuous value.
#[napi]
pub enum CustomNumEnum {
One = 1,
Two,
Three = 3,
Four,
Six = 6,
Eight = 8,
Nine, // would be 9
Ten, // 10
}
#[napi]
fn enum_to_i32(e: CustomNumEnum) -> i32 {
e as i32
}