ohos-ffrt 0.1.0

ohos ffrt runtime bindings
#![allow(warnings)]

use ohos_ffrt_sys::{
    ffrt_qos_default_t, ffrt_qos_default_t_ffrt_qos_background,
    ffrt_qos_default_t_ffrt_qos_default, ffrt_qos_default_t_ffrt_qos_inherit,
    ffrt_qos_default_t_ffrt_qos_user_initiated, ffrt_qos_default_t_ffrt_qos_utility,
};

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Qos {
    Inherit,
    Background,
    Utility,
    Default,
    UserInitiated,
}

impl From<Qos> for ffrt_qos_default_t {
    fn from(qos: Qos) -> Self {
        match qos {
            Qos::Inherit => ffrt_qos_default_t_ffrt_qos_inherit,
            Qos::Background => ffrt_qos_default_t_ffrt_qos_background,
            Qos::Utility => ffrt_qos_default_t_ffrt_qos_utility,
            Qos::Default => ffrt_qos_default_t_ffrt_qos_default,
            Qos::UserInitiated => ffrt_qos_default_t_ffrt_qos_user_initiated,
        }
    }
}

impl From<ffrt_qos_default_t> for Qos {
    fn from(qos: ffrt_qos_default_t) -> Self {
        match qos {
            ffrt_qos_default_t_ffrt_qos_inherit => Qos::Inherit,
            ffrt_qos_default_t_ffrt_qos_background => Qos::Background,
            ffrt_qos_default_t_ffrt_qos_utility => Qos::Utility,
            ffrt_qos_default_t_ffrt_qos_default => Qos::Default,
            ffrt_qos_default_t_ffrt_qos_user_initiated => Qos::UserInitiated,
            _ => unreachable!(),
        }
    }
}