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
31unsafe impl Send for SettingsPack {}