Y a-t-il un moyen de faire quelque chose comme ça?Existe-t-il un moyen de créer un alias d'une valeur enum?
enum MyType {
Left,
Right,
#[cfg(universe = "normal")]
Port = Left,
#[cfg(universe = "normal")]
Starboard = Right,
#[cfg(universe = "mirror")]
Port = Right,
#[cfg(universe = "mirror")]
Starboard = Left,
}
Si vous essayez réellement, vous obtenez cette erreur (je dû ajouter MyType::
):
error[E0080]: constant evaluation error
--> <anon>:9:12
|
9 | Port = MyType::Left,
| ^^^^^^^^^^^^ unimplemented constant expression: enum variants
Here est où cette erreur est déclenchée.
Oui J'essaie de créer des alias. Rust a déjà des alias de type sans problème. Pouvez-vous donner un exemple d'une manière dont le support des alias de variant enum casserait quelque chose parce que je ne peux pas voir. – Timmmm
@Timmmm: Le problème est la correspondance de modèle. Quel bras est pris au cas où vous auriez 'match x {One => {}, Two => {}}'? –
Ce n'est pas un problème. Il se comporterait exactement comme si vous écriviez 'match x {One => {}, One => {}}', c'est-à-dire imprime une erreur. (L'erreur qu'il imprime réellement est 'C'est un modèle inaccessible'.) – Timmmm