HyperBoolean 0.1.0

Next innovation in computer science
Documentation
use std::fmt;

pub enum HyperBoolean {
    HyperTrue,
    True,
    Neutral,
    False,
    HyperFalse,
}

impl fmt::Debug for HyperBoolean {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            HyperBoolean::HyperTrue => write!(f, "HyperTrue"),
            HyperBoolean::True => write!(f, "True"),
            HyperBoolean::Neutral => write!(f, "Neutral"),
            HyperBoolean::False => write!(f, "False"),
            HyperBoolean::HyperFalse => write!(f, "HyperFalse"),
        }
    }
}

impl PartialEq for HyperBoolean {
    fn eq(&self, other: &Self) -> bool {
        let x = match self {
            HyperBoolean::HyperTrue => 0,
            HyperBoolean::True => 1,
            HyperBoolean::Neutral => 2,
            HyperBoolean::False => 3,
            HyperBoolean::HyperFalse => 4,
        };

        return match other {
            HyperBoolean::HyperTrue => 0 == x,
            HyperBoolean::True => 1 == x,
            HyperBoolean::Neutral =>  2 == x,
            HyperBoolean::False => 3 == x,
            HyperBoolean::HyperFalse => 4 == x,
        };
    }
}