Enum
⚠️
Não há enum no JavaScript, e o enum em Rust é muito diferente do enum em
TypeScript. Você precisa ler esta seção cuidadosamente antes de usar enum do
Rust em JavaScript.
Em NAPI-RS, o enum do Rust é basicamente transformado em um simples objeto JavaScript.
lib.rs
#[napi]
enum Kind {
Duck,
Dog,
Cat,
}⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️
index.d.ts
export const enum Kind {
Duck,
Dog,
Cat,
}Em TypeScript, os membros de enums numéricos também recebem um mapeamento reverso dos valores do enum para os nomes do enum. Mas em Rust, não temos esse comportamento de mapeamento reverso. É apenas um objeto JavaScript simples.
String enum
lib.rs
#[napi(string_enum)]
enum Kind {
Duck,
Dog,
Cat,
}⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️
index.d.ts
export const enum Kind {
Duck = 'Duck',
Dog = 'Dog',
Cat = 'Cat',
}NAPI-RS não suporta a geração de impl de enum Rust em JavaScript.