use endpoint_sec_sys::{es_auth_result_t, es_event_id_t, es_result_t, es_result_type_t};
#[doc(alias = "es_event_id_t")]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum Action {
Auth(es_event_id_t),
Notify(ActionResult),
}
static_assertions::assert_impl_all!(Action: Send);
#[doc(alias = "es_result_t")]
#[doc(alias = "es_result_type_t")]
#[doc(alias = "es_auth_result_t")]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum ActionResult {
Auth(es_auth_result_t),
Flags(u32),
}
impl ActionResult {
pub(crate) fn from_raw(r: es_result_t) -> Option<Self> {
match r.result_type {
es_result_type_t::ES_RESULT_TYPE_AUTH => Some(Self::Auth(unsafe { r.result.auth })),
es_result_type_t::ES_RESULT_TYPE_FLAGS => Some(Self::Flags(unsafe { r.result.flags })),
_ => None,
}
}
}
static_assertions::assert_impl_all!(ActionResult: Send);