E0081 - Error codes index
Description: Book listing all Rust error codes

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Error code E0081

A discriminant value is present more than once.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    enum Enum {
        P = 3,
        X = 3, // error!
        Y = 5,
    }
    }

Enum discriminants are used to differentiate enum variants stored in memory. This error indicates that the same value was used for two or more variants, making it impossible to distinguish them.

    #![allow(unused)]
    fn main() {
    enum Enum {
        P,
        X = 3, // ok!
        Y = 5,
    }
    }

Note that variants without a manually specified discriminant are numbered from top to bottom starting from 0, so clashes can occur with seemingly unrelated variants.

    #![allow(unused)]
    fn main() {
    enum Bad {
        X,
        Y = 0, // error!
    }
    }

Here `X` will have already been specified the discriminant 0 by the time `Y` is encountered, so a conflict occurs.