lt_rs/
settings_pack.rs

1use cxx::UniquePtr;
2
3use crate::{alerts::AlertCategory, ffi::ffi};
4
5pub struct SettingsPack {
6    inner: UniquePtr<ffi::settings_pack>,
7}
8
9impl SettingsPack {
10    pub fn new() -> SettingsPack {
11        SettingsPack {
12            inner: ffi::lt_create_settings_pack(),
13        }
14    }
15
16    pub(crate) fn inner(&self) -> &ffi::settings_pack {
17        &self.inner
18    }
19
20    pub fn set_alert_mask(&mut self, mask: AlertCategory) {
21        ffi::lt_set_alert_mask(self.inner.pin_mut(), mask.bits());
22    }
23}
24
25impl From<UniquePtr<ffi::settings_pack>> for SettingsPack {
26    fn from(inner: UniquePtr<ffi::settings_pack>) -> SettingsPack {
27        SettingsPack { inner }
28    }
29}
30
31// TODO: Check if this is safe
32unsafe impl Send for SettingsPack {}