napi-rs/examples/napi/src/enum.rs

46 lines
603 B
Rust

/// default enum values are continuos i32s start from 0
#[napi]
pub enum Kind {
/// Barks
Dog,
/// Kills birds
Cat,
/// Tasty
Duck,
}
#[napi]
pub enum Empty {}
#[napi(string_enum)]
pub enum Status {
Pristine,
Loading,
Ready,
}
/// You could break the step and for an new continuous value.
#[napi]
pub enum CustomNumEnum {
One = 1,
Two,
Three = 3,
Four,
#[doc(hidden)]
Six = 6,
Eight = 8,
Nine, // would be 9
Ten, // 10
}
#[napi]
fn enum_to_i32(e: CustomNumEnum) -> i32 {
e as i32
}
#[napi(skip_typescript)]
pub enum SkippedEnums {
One = 1,
Two,
Tree,
}