// Mesecons gates
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum MeseconsGate {
    Input,
    Output,
    Forward,

    And,
    Nand,
    Or,
    Nor,
    Not,
    Xor,
}

impl MeseconsGate {
    pub fn mesecon_id(self) -> &'static str {
        use self::MeseconsGate::*;
        match self {
            Input => "mesecons_walllever:wall_lever_off",
            Output => "mesecons_lamp:lamp_off",
            Forward => "mesecons_insulated:insulated_off",
            Or => "mesecons_gates:or_off",
            Xor => "mesecons_gates:xor_off",
            And => "mesecons_gates:and_off",
            Nand => "mesecons_gates:nand_off",
            Nor => "mesecons_gates:nor_off",
            Not => "mesecons_gates:not_off",
        }
    }
}
