fn chromatic_alteration(&self) -> isize {
        use IntervalSize::*;
        // the panic conditions will be unreachable given the public 
        // constructors for these classes
        match self.size {
            Unison | Fourth | Fifth => match self.quality {
                IntervalQuality::Diminished(degree) => -1 * (degree + 1) as isize,
                IntervalQuality::Augmented(degree) => degree as isize + 1,
                IntervalQuality::Perfect => 0,
                _ => panic!("Major or Minor quality applied to a perfect interval"),
            },
            _ => match self.quality {
                IntervalQuality::Diminished(degree) => -1 - ((degree + 1) as isize),
                IntervalQuality::Augmented(degree) => degree as isize + 1,
                IntervalQuality::Minor => -1,
                IntervalQuality::Major => 0,
                _ => panic!("Perfect quality applied to non-perfect interval"),
            }
        }
    }
/// The number of half-steps up or down that the [`IntervalQuality`] adjusts the [`IntervalSize`] by.
/// Keep in mind that the value of a `Diminished` interval depends on whether the size is Perfect or Major.
The number of half-steps up or down that the [`IntervalQuality`] adjusts the [`IntervalSize`] by.
Keep in mind that the value of a `Diminished` interval depends on whether the size is Perfect or Major.
The number of half - steps up or down that the [ ` IntervalQuality ` ] adjusts the [ ` IntervalSize ` ] by . Keep in mind that the value of a ` Diminished ` interval depends on whether the size is Perfect or Major .
fn chromatic_alteration(&self) -> isize {
        use IntervalSize::*;
        // the panic conditions will be unreachable given the public 
        // constructors for these classes
        match self.size {
            Unison | Fourth | Fifth => match self.quality {
                IntervalQuality::Diminished(degree) => -1 * (degree + 1) as isize,
                IntervalQuality::Augmented(degree) => degree as isize + 1,
                IntervalQuality::Perfect => 0,
                _ => panic!("Major or Minor quality applied to a perfect interval"),
            },
            _ => match self.quality {
                IntervalQuality::Diminished(degree) => -1 - ((degree + 1) as isize),
                IntervalQuality::Augmented(degree) => degree as isize + 1,
                IntervalQuality::Minor => -1,
                IntervalQuality::Major => 0,
                _ => panic!("Perfect quality applied to non-perfect interval"),
            }
        }
    }
fn chromatic_alteration ( & self ) -> isize { use IntervalSize :: * ; // the panic conditions will be unreachable given the public  // constructors for these classes match self . size { Unison | Fourth | Fifth => match self . quality { IntervalQuality :: Diminished ( degree ) => - 1 * ( degree + 1 ) as isize , IntervalQuality :: Augmented ( degree ) => degree as isize + 1 , IntervalQuality :: Perfect => 0 , _ => panic ! ( " " ) , } , _ => match self . quality { IntervalQuality :: Diminished ( degree ) => - 1 - ( ( degree + 1 ) as isize ) , IntervalQuality :: Augmented ( degree ) => degree as isize + 1 , IntervalQuality :: Minor => - 1 , IntervalQuality :: Major => 0 , _ => panic ! ( " " ) , } } }
The number of half-steps up or down that the [`IntervalQuality`] adjusts the [`IntervalSize`] by.
The number of half - steps up or down that the [ ` IntervalQuality ` ] adjusts the [ ` IntervalSize ` ] by .
&self