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.