#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum ERemoteClientBroadcastMsg {
    Discovery = 0,
    Status = 1,
    Offline = 2,
    AuthorizationRequest = 3,
    AuthorizationResponse = 4,
    StreamingRequest = 5,
    StreamingResponse = 6,
    ProofRequest = 7,
    ProofResponse = 8,
    AuthorizationCancelRequest = 9,
    StreamingCancelRequest = 10,
    ClientIDDeconflict = 11,
    StreamTransportSignal = 12,
    StreamingProgress = 13,
    AuthorizationConfirmed = 14,
}

impl ERemoteClientBroadcastMsg {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Discovery as i32 => Some(Self::Discovery),
            x if x == Self::Status as i32 => Some(Self::Status),
            x if x == Self::Offline as i32 => Some(Self::Offline),
            x if x == Self::AuthorizationRequest as i32 => Some(Self::AuthorizationRequest),
            x if x == Self::AuthorizationResponse as i32 => Some(Self::AuthorizationResponse),
            x if x == Self::StreamingRequest as i32 => Some(Self::StreamingRequest),
            x if x == Self::StreamingResponse as i32 => Some(Self::StreamingResponse),
            x if x == Self::ProofRequest as i32 => Some(Self::ProofRequest),
            x if x == Self::ProofResponse as i32 => Some(Self::ProofResponse),
            x if x == Self::AuthorizationCancelRequest as i32 => Some(Self::AuthorizationCancelRequest),
            x if x == Self::StreamingCancelRequest as i32 => Some(Self::StreamingCancelRequest),
            x if x == Self::ClientIDDeconflict as i32 => Some(Self::ClientIDDeconflict),
            x if x == Self::StreamTransportSignal as i32 => Some(Self::StreamTransportSignal),
            x if x == Self::StreamingProgress as i32 => Some(Self::StreamingProgress),
            x if x == Self::AuthorizationConfirmed as i32 => Some(Self::AuthorizationConfirmed),
            _ => None,
        }
    }
}
