2467b7139b
* 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>
27 lines
396 B
Rust
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
|
|
}
|