genesys-dice-roller 0.2.3

A simple dice rolling library for genesys dice strings
Documentation
use genesys_dice_command_parser::{
    dice::Dice as DiceType
};

#[derive(PartialEq, Debug, Copy, Clone, Eq, Hash)]
pub enum DieFace {
    Blank,
    Threat,
    Advantage,
    Success,
    Failure,
    Triumph,
    Despair,
    SuccessAndAdvantage,
    FailureAndThreat,
    DoubleAdvantage,
    DoubleSuccess,
    DoubleFailure,
    DoubleThreat,
    SingleBlackPip,
    SingleWhitePip,
    DoubleBlackPip,
    DoubleWhitePip
}

pub const fn get_die_face_for_dice(face_index: usize, dice_type: &DiceType) -> DieFace {
    match dice_type {
        DiceType::Boost => [DieFace::Blank, DieFace::Blank, DieFace::Success, DieFace::SuccessAndAdvantage, DieFace::DoubleAdvantage, DieFace::Advantage][face_index],
        DiceType::Ability => [DieFace::Blank, DieFace::Success, DieFace::Success, DieFace::DoubleSuccess, DieFace::Advantage, DieFace::Advantage, DieFace::SuccessAndAdvantage, DieFace::DoubleAdvantage][face_index],
        DiceType::Proficiency => [DieFace::Blank, DieFace::Success, DieFace::Success, DieFace::DoubleSuccess, DieFace::DoubleSuccess, DieFace::Advantage, DieFace::SuccessAndAdvantage, DieFace::SuccessAndAdvantage, DieFace::SuccessAndAdvantage, DieFace::DoubleAdvantage, DieFace::DoubleAdvantage, DieFace::Triumph][face_index],
        DiceType::Setback => [DieFace::Blank, DieFace::Blank, DieFace::Failure, DieFace::Failure, DieFace::Threat, DieFace::Threat][face_index],
        DiceType::Difficulty => [DieFace::Blank, DieFace::Failure, DieFace::DoubleFailure, DieFace::Threat, DieFace::Threat, DieFace::Threat, DieFace::DoubleThreat, DieFace::FailureAndThreat][face_index],
        DiceType::Challenge => [DieFace::Blank, DieFace::Failure, DieFace::Failure, DieFace::DoubleFailure, DieFace::DoubleFailure, DieFace::Threat,DieFace::Threat,DieFace::FailureAndThreat,DieFace::FailureAndThreat,DieFace::DoubleThreat,DieFace::DoubleThreat,DieFace::Despair][face_index],
        DiceType::Force => [DieFace::SingleBlackPip,DieFace::SingleBlackPip,DieFace::SingleBlackPip,DieFace::SingleBlackPip,DieFace::SingleBlackPip,DieFace::SingleBlackPip,DieFace::DoubleBlackPip,DieFace::SingleWhitePip,DieFace::SingleWhitePip,DieFace::DoubleWhitePip,DieFace::DoubleWhitePip,DieFace::DoubleWhitePip][face_index],
    }
}