#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EStreamFrameResult {
    Pending = 0,
    Displayed = 1,
    DroppedNetworkSlow = 2,
    DroppedNetworkLost = 3,
    DroppedDecodeSlow = 4,
    DroppedDecodeCorrupt = 5,
    DroppedLate = 6,
    DroppedReset = 7,
}

impl EStreamFrameResult {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Pending as i32 => Some(Self::Pending),
            x if x == Self::Displayed as i32 => Some(Self::Displayed),
            x if x == Self::DroppedNetworkSlow as i32 => Some(Self::DroppedNetworkSlow),
            x if x == Self::DroppedNetworkLost as i32 => Some(Self::DroppedNetworkLost),
            x if x == Self::DroppedDecodeSlow as i32 => Some(Self::DroppedDecodeSlow),
            x if x == Self::DroppedDecodeCorrupt as i32 => Some(Self::DroppedDecodeCorrupt),
            x if x == Self::DroppedLate as i32 => Some(Self::DroppedLate),
            x if x == Self::DroppedReset as i32 => Some(Self::DroppedReset),
            _ => None,
        }
    }
}
