Usando C enums em Rust

Se você tentar usar um enumem uma externdeclaração de função C, receberá um aviso:

enumtipo encontrado sem anotação de representação segura de função estrangeira em módulo estrangeiro, ativado #[warn(ctypes)]por padrão

O que Rust está tentando dizer é que C e Rust podem usar tamanhos inteiros diferentes para o enum, então você precisa dizer a Rust para usar o mesmo tamanho que C. Você faz isso com #[repr(C)]anotação:

#[repr(C)]
enum Foo {
BAR
, BAZ, QUZ,
}