#![allow(dead_code)]

#[derive(Debug, Clone)]
pub struct TwoPhase150DegreeProfile {
    pub steps: [ProfileSetting; 8],
}

impl Default for TwoPhase150DegreeProfile {
    fn default() -> Self {
        Self {
            steps: [ProfileSetting::Percent0; _],
        }
    }
}

#[derive(Debug, Clone)]
pub struct ThreePhase150DegreeProfile {
    pub steps: [ProfileSetting; 8],
    pub lead_angle: ThreePhaseLeadAngle,
}

impl Default for ThreePhase150DegreeProfile {
    fn default() -> Self {
        Self {
            steps: [ProfileSetting::Percent0; _],
            lead_angle: ThreePhaseLeadAngle::Degrees0,
        }
    }
}

#[derive(Debug, Copy, Clone)]
pub enum ProfileSetting {
    Percent0 = 0x0,
    Percent50 = 0x1,
    Percent75 = 0x2,
    Percent83_75 = 0x3,
    Percent87_5 = 0x4,
    Percent93_75 = 0x5,
    Percent97_5 = 0x6,
    Percent99 = 0x7,
}

#[derive(Debug, Copy, Clone)]
pub enum ThreePhaseLeadAngle {
    Degrees0 = 0x0,
    Degrees5 = 0x1,
    Degrees10 = 0x2,
    Degrees15 = 0x3,
}
