traduccion ps4 lenguaje language descargar rust

ps4 - rust traduccion



¿Cómo convierto una referencia de enumeración a un número? (1)

Tengo una enumeración:

enum Foo { Bar = 1, }

¿Cómo convierto una referencia a esta enumeración en un número entero para usar en matemáticas?

fn f(foo: &Foo) { let f = foo as u8; // error[E0606]: casting `&Foo` as `u8` is invalid let f = foo as &u8; // error[E0605]: non-primitive cast: `&Foo` as `&u8` let f = *foo as u8; // error[E0507]: cannot move out of borrowed content }


*foo as u8 es correcto, pero tienes que implementar Copy porque, de lo contrario, *foo as u8 una referencia no válida.

#[derive(Copy, Clone)] enum Foo { Bar = 1, } fn f(foo: &Foo) -> u8 { *foo as u8 }

Ya que su enumeración será un objeto muy liviano, debería pasarlo por valor de todos modos, para lo cual también necesitará Copy .