Pular para o conteúdo
TE117 · Tipos · error

Enum `@stable` exige discriminante explícito

Sob `@stable` o auto-incremento é proibido: inserir uma variante no meio renumeraria silenciosamente todas as seguintes, quebrando a codificação que a anotação promete manter.

Why this fires

An enum decorated @stable (a promise that its numeric encoding won't silently shift between versions) has a variant with no explicit = n discriminant. Under @stable, auto-increment is disallowed — inserting a new variant in the middle would otherwise renumber every variant after it without anyone noticing.

@stable
enum Packet: u8 {
    Connect = 0,
    Data,
    //   ^^^^ error[TE117]: @stable enum `Packet` requires an explicit discriminant
    //        on variant `Data` (auto-increment is not allowed under @stable)
}

Fix it

Give every variant an explicit value:

@stable
enum Packet: u8 {
    Connect = 0,
    Data    = 1,             // ok
}

See also

Veja também

Buscar no Zolo

9 resultados

en