use crate::{
dds_async::condition::StatusConditionAsync,
infrastructure::{error::DdsResult, status::StatusKind},
std_runtime::executor::block_on,
};
use alloc::vec::Vec;
pub struct StatusCondition {
condition_async: StatusConditionAsync,
}
impl Clone for StatusCondition {
fn clone(&self) -> Self {
Self {
condition_async: self.condition_async.clone(),
}
}
}
impl StatusCondition {
pub(crate) fn new(condition_async: StatusConditionAsync) -> Self {
Self { condition_async }
}
pub(crate) fn condition_async(&self) -> &StatusConditionAsync {
&self.condition_async
}
}
impl StatusCondition {
pub fn get_enabled_statuses(&self) -> DdsResult<Vec<StatusKind>> {
block_on(self.condition_async.get_enabled_statuses())
}
pub fn set_enabled_statuses(&self, mask: &[StatusKind]) -> DdsResult<()> {
block_on(self.condition_async.set_enabled_statuses(mask))
}
pub fn get_entity(&self) {
block_on(self.condition_async.get_entity())
}
}
impl StatusCondition {
pub fn get_trigger_value(&self) -> DdsResult<bool> {
block_on(self.condition_async.get_trigger_value())
}
}