     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    //! An uninhabitable type meaning it can never happen.
    //!
    //! To be replaced with `!` once it is stable.

    use std::error::Error;
    use std::fmt;

    #[derive(Debug)]
    pub(crate) enum Never {}

    impl fmt::Display for Never {
        fn fmt(&self, _: &mut fmt::Formatter<'_>) -> fmt::Result {
            match *self {}
        }
    }

    impl Error for Never {
        fn description(&self) -> &str {
            match *self {}
        }
    }