nm_rs/
setting_wireless.rs

1use std::borrow::Borrow;
2
3use glib::object::{IsA, ObjectExt};
4use glib::translate::*;
5
6use crate::SettingWireless;
7use crate::builders::SettingWirelessBuilder;
8use crate::ffi;
9
10pub trait SettingWirelessExtManual:
11    IsA<SettingWireless, GlibType = ffi::NMSettingWireless>
12{
13    ///
14    /// # Returns
15    ///
16    /// the #NMSettingWireless:ssid property of the setting
17    #[doc(alias = "nm_setting_wireless_get_ssid")]
18    #[doc(alias = "get_ssid")]
19    fn ssid(&self) -> glib::Bytes {
20        unsafe {
21            glib::Bytes::from_glib_none(ffi::nm_setting_wireless_get_ssid(self.to_glib_none().0))
22        }
23    }
24
25    ///
26    /// # Returns
27    ///
28    /// the #NMSettingWireless:ssid property of the setting as a string checked for UTF8
29    /// compatibility.
30    fn ssid_utf8(&self) -> Option<glib::GString> {
31        let ssid = unsafe {
32            glib::Bytes::from_glib_none(ffi::nm_setting_wireless_get_ssid(self.to_glib_none().0))
33        };
34
35        glib::GString::from_utf8(ssid.to_vec()).ok()
36    }
37
38    // SSID of the Wi-Fi network. Must be specified.
39    fn set_ssid<B: Borrow<[u8]> + ?Sized>(&self, ssid: &B) {
40        let bytes = glib::Bytes::from(ssid);
41        ObjectExt::set_property(self, "ssid", bytes);
42    }
43}
44
45impl<T: IsA<SettingWireless, GlibType = ffi::NMSettingWireless>> SettingWirelessExtManual for T {}