#[doc = r" Value read from the register"]
pub struct R {
    bits: u16,
}
impl super::P1IV {
    #[doc = r" Reads the contents of the register"]
    #[inline]
    pub fn read(&self) -> R {
        R {
            bits: self.register.get(),
        }
    }
}
#[doc = "Possible values of the field `P1IV`"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum P1IVR {
    #[doc = "No interrupt pending"]
    P1IV_0,
    #[doc = "Interrupt Source: Port 1.0 interrupt; Interrupt Flag: P1IFG0; Interrupt Priority: Highest"]
    P1IV_2,
    #[doc = "Interrupt Source: Port 1.1 interrupt; Interrupt Flag: P1IFG1"]
    P1IV_4,
    #[doc = "Interrupt Source: Port 1.2 interrupt; Interrupt Flag: P1IFG2"]
    P1IV_6,
    #[doc = "Interrupt Source: Port 1.3 interrupt; Interrupt Flag: P1IFG3"]
    P1IV_8,
    #[doc = "Interrupt Source: Port 1.4 interrupt; Interrupt Flag: P1IFG4"]
    P1IV_10,
    #[doc = "Interrupt Source: Port 1.5 interrupt; Interrupt Flag: P1IFG5"]
    P1IV_12,
    #[doc = "Interrupt Source: Port 1.6 interrupt; Interrupt Flag: P1IFG6"]
    P1IV_14,
    #[doc = "Interrupt Source: Port 1.7 interrupt; Interrupt Flag: P1IFG7; Interrupt Priority: Lowest"]
    P1IV_16,
    #[doc = r" Reserved"]
    _Reserved(u8),
}
impl P1IVR {
    #[doc = r" Value of the field as raw bits"]
    #[inline]
    pub fn bits(&self) -> u8 {
        match *self {
            P1IVR::P1IV_0 => 0,
            P1IVR::P1IV_2 => 2,
            P1IVR::P1IV_4 => 4,
            P1IVR::P1IV_6 => 6,
            P1IVR::P1IV_8 => 8,
            P1IVR::P1IV_10 => 10,
            P1IVR::P1IV_12 => 12,
            P1IVR::P1IV_14 => 14,
            P1IVR::P1IV_16 => 16,
            P1IVR::_Reserved(bits) => bits,
        }
    }
    #[allow(missing_docs)]
    #[doc(hidden)]
    #[inline]
    pub fn _from(value: u8) -> P1IVR {
        match value {
            0 => P1IVR::P1IV_0,
            2 => P1IVR::P1IV_2,
            4 => P1IVR::P1IV_4,
            6 => P1IVR::P1IV_6,
            8 => P1IVR::P1IV_8,
            10 => P1IVR::P1IV_10,
            12 => P1IVR::P1IV_12,
            14 => P1IVR::P1IV_14,
            16 => P1IVR::P1IV_16,
            i => P1IVR::_Reserved(i),
        }
    }
    #[doc = "Checks if the value of the field is `P1IV_0`"]
    #[inline]
    pub fn is_p1iv_0(&self) -> bool {
        *self == P1IVR::P1IV_0
    }
    #[doc = "Checks if the value of the field is `P1IV_2`"]
    #[inline]
    pub fn is_p1iv_2(&self) -> bool {
        *self == P1IVR::P1IV_2
    }
    #[doc = "Checks if the value of the field is `P1IV_4`"]
    #[inline]
    pub fn is_p1iv_4(&self) -> bool {
        *self == P1IVR::P1IV_4
    }
    #[doc = "Checks if the value of the field is `P1IV_6`"]
    #[inline]
    pub fn is_p1iv_6(&self) -> bool {
        *self == P1IVR::P1IV_6
    }
    #[doc = "Checks if the value of the field is `P1IV_8`"]
    #[inline]
    pub fn is_p1iv_8(&self) -> bool {
        *self == P1IVR::P1IV_8
    }
    #[doc = "Checks if the value of the field is `P1IV_10`"]
    #[inline]
    pub fn is_p1iv_10(&self) -> bool {
        *self == P1IVR::P1IV_10
    }
    #[doc = "Checks if the value of the field is `P1IV_12`"]
    #[inline]
    pub fn is_p1iv_12(&self) -> bool {
        *self == P1IVR::P1IV_12
    }
    #[doc = "Checks if the value of the field is `P1IV_14`"]
    #[inline]
    pub fn is_p1iv_14(&self) -> bool {
        *self == P1IVR::P1IV_14
    }
    #[doc = "Checks if the value of the field is `P1IV_16`"]
    #[inline]
    pub fn is_p1iv_16(&self) -> bool {
        *self == P1IVR::P1IV_16
    }
}
impl R {
    #[doc = r" Value of the register as raw bits"]
    #[inline]
    pub fn bits(&self) -> u16 {
        self.bits
    }
    #[doc = "Bits 0:4 - Port 1 interrupt vector value"]
    #[inline]
    pub fn p1iv(&self) -> P1IVR {
        P1IVR::_from({
            const MASK: u8 = 31;
            const OFFSET: u8 = 0;
            ((self.bits >> OFFSET) & MASK as u16) as u8
        })
    }
}