1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8 clippy::approx_constant,
9 clippy::type_complexity,
10 clippy::unreadable_literal,
11 clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use gio_sys as gio;
16use glib_sys as glib;
17use gobject_sys as gobject;
18use nm_rs_sys as nm;
19
20#[cfg(unix)]
21#[allow(unused_imports)]
22use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
23#[allow(unused_imports)]
24use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
25#[allow(unused_imports)]
26use std::ffi::{
27 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
28};
29
30#[allow(unused_imports)]
31use glib::{gboolean, gconstpointer, gpointer, GType};
32
33pub type AstalNetworkConnectivity = c_int;
35pub const ASTAL_NETWORK_CONNECTIVITY_UNKNOWN: AstalNetworkConnectivity = 0;
36pub const ASTAL_NETWORK_CONNECTIVITY_NONE: AstalNetworkConnectivity = 1;
37pub const ASTAL_NETWORK_CONNECTIVITY_PORTAL: AstalNetworkConnectivity = 2;
38pub const ASTAL_NETWORK_CONNECTIVITY_LIMITED: AstalNetworkConnectivity = 3;
39pub const ASTAL_NETWORK_CONNECTIVITY_FULL: AstalNetworkConnectivity = 4;
40
41pub type AstalNetworkDeviceState = c_int;
42pub const ASTAL_NETWORK_DEVICE_STATE_UNKNOWN: AstalNetworkDeviceState = 0;
43pub const ASTAL_NETWORK_DEVICE_STATE_UNMANAGED: AstalNetworkDeviceState = 10;
44pub const ASTAL_NETWORK_DEVICE_STATE_UNAVAILABLE: AstalNetworkDeviceState = 20;
45pub const ASTAL_NETWORK_DEVICE_STATE_DISCONNECTED: AstalNetworkDeviceState = 30;
46pub const ASTAL_NETWORK_DEVICE_STATE_PREPARE: AstalNetworkDeviceState = 40;
47pub const ASTAL_NETWORK_DEVICE_STATE_CONFIG: AstalNetworkDeviceState = 50;
48pub const ASTAL_NETWORK_DEVICE_STATE_NEED_AUTH: AstalNetworkDeviceState = 60;
49pub const ASTAL_NETWORK_DEVICE_STATE_IP_CONFIG: AstalNetworkDeviceState = 70;
50pub const ASTAL_NETWORK_DEVICE_STATE_IP_CHECK: AstalNetworkDeviceState = 80;
51pub const ASTAL_NETWORK_DEVICE_STATE_SECONDARIES: AstalNetworkDeviceState = 90;
52pub const ASTAL_NETWORK_DEVICE_STATE_ACTIVATED: AstalNetworkDeviceState = 100;
53pub const ASTAL_NETWORK_DEVICE_STATE_DEACTIVATING: AstalNetworkDeviceState = 110;
54pub const ASTAL_NETWORK_DEVICE_STATE_FAILED: AstalNetworkDeviceState = 120;
55
56pub type AstalNetworkInternet = c_int;
57pub const ASTAL_NETWORK_INTERNET_CONNECTED: AstalNetworkInternet = 0;
58pub const ASTAL_NETWORK_INTERNET_CONNECTING: AstalNetworkInternet = 1;
59pub const ASTAL_NETWORK_INTERNET_DISCONNECTED: AstalNetworkInternet = 2;
60
61pub type AstalNetworkPrimary = c_int;
62pub const ASTAL_NETWORK_PRIMARY_UNKNOWN: AstalNetworkPrimary = 0;
63pub const ASTAL_NETWORK_PRIMARY_WIRED: AstalNetworkPrimary = 1;
64pub const ASTAL_NETWORK_PRIMARY_WIFI: AstalNetworkPrimary = 2;
65
66pub type AstalNetworkState = c_int;
67pub const ASTAL_NETWORK_STATE_UNKNOWN: AstalNetworkState = 0;
68pub const ASTAL_NETWORK_STATE_ASLEEP: AstalNetworkState = 10;
69pub const ASTAL_NETWORK_STATE_DISCONNECTED: AstalNetworkState = 20;
70pub const ASTAL_NETWORK_STATE_DISCONNECTING: AstalNetworkState = 30;
71pub const ASTAL_NETWORK_STATE_CONNECTING: AstalNetworkState = 40;
72pub const ASTAL_NETWORK_STATE_CONNECTED_LOCAL: AstalNetworkState = 50;
73pub const ASTAL_NETWORK_STATE_CONNECTED_SITE: AstalNetworkState = 60;
74pub const ASTAL_NETWORK_STATE_CONNECTED_GLOBAL: AstalNetworkState = 70;
75
76pub const ASTAL_NETWORK_MAJOR_VERSION: c_int = 0;
78pub const ASTAL_NETWORK_MINOR_VERSION: c_int = 1;
79pub const ASTAL_NETWORK_MICRO_VERSION: c_int = 0;
80pub const ASTAL_NETWORK_VERSION: &[u8] = b"0.1.0\0";
81
82#[derive(Copy, Clone)]
84#[repr(C)]
85pub struct AstalNetworkAccessPointClass {
86 pub parent_class: gobject::GObjectClass,
87}
88
89impl ::std::fmt::Debug for AstalNetworkAccessPointClass {
90 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
91 f.debug_struct(&format!("AstalNetworkAccessPointClass @ {self:p}"))
92 .finish()
93 }
94}
95
96#[repr(C)]
97#[allow(dead_code)]
98pub struct _AstalNetworkAccessPointPrivate {
99 _data: [u8; 0],
100 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
101}
102
103pub type AstalNetworkAccessPointPrivate = _AstalNetworkAccessPointPrivate;
104
105#[derive(Copy, Clone)]
106#[repr(C)]
107pub struct AstalNetworkNetworkClass {
108 pub parent_class: gobject::GObjectClass,
109}
110
111impl ::std::fmt::Debug for AstalNetworkNetworkClass {
112 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
113 f.debug_struct(&format!("AstalNetworkNetworkClass @ {self:p}"))
114 .finish()
115 }
116}
117
118#[repr(C)]
119#[allow(dead_code)]
120pub struct _AstalNetworkNetworkPrivate {
121 _data: [u8; 0],
122 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
123}
124
125pub type AstalNetworkNetworkPrivate = _AstalNetworkNetworkPrivate;
126
127#[derive(Copy, Clone)]
128#[repr(C)]
129pub struct AstalNetworkWifiClass {
130 pub parent_class: gobject::GObjectClass,
131}
132
133impl ::std::fmt::Debug for AstalNetworkWifiClass {
134 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
135 f.debug_struct(&format!("AstalNetworkWifiClass @ {self:p}"))
136 .finish()
137 }
138}
139
140#[repr(C)]
141#[allow(dead_code)]
142pub struct _AstalNetworkWifiPrivate {
143 _data: [u8; 0],
144 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
145}
146
147pub type AstalNetworkWifiPrivate = _AstalNetworkWifiPrivate;
148
149#[derive(Copy, Clone)]
150#[repr(C)]
151pub struct AstalNetworkWiredClass {
152 pub parent_class: gobject::GObjectClass,
153}
154
155impl ::std::fmt::Debug for AstalNetworkWiredClass {
156 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
157 f.debug_struct(&format!("AstalNetworkWiredClass @ {self:p}"))
158 .finish()
159 }
160}
161
162#[repr(C)]
163#[allow(dead_code)]
164pub struct _AstalNetworkWiredPrivate {
165 _data: [u8; 0],
166 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
167}
168
169pub type AstalNetworkWiredPrivate = _AstalNetworkWiredPrivate;
170
171#[derive(Copy, Clone)]
173#[repr(C)]
174pub struct AstalNetworkAccessPoint {
175 pub parent_instance: gobject::GObject,
176 pub priv_: *mut AstalNetworkAccessPointPrivate,
177 pub ap: *mut nm::NMAccessPoint,
178}
179
180impl ::std::fmt::Debug for AstalNetworkAccessPoint {
181 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
182 f.debug_struct(&format!("AstalNetworkAccessPoint @ {self:p}"))
183 .field("ap", &self.ap)
184 .finish()
185 }
186}
187
188#[derive(Copy, Clone)]
189#[repr(C)]
190pub struct AstalNetworkNetwork {
191 pub parent_instance: gobject::GObject,
192 pub priv_: *mut AstalNetworkNetworkPrivate,
193}
194
195impl ::std::fmt::Debug for AstalNetworkNetwork {
196 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
197 f.debug_struct(&format!("AstalNetworkNetwork @ {self:p}"))
198 .finish()
199 }
200}
201
202#[derive(Copy, Clone)]
203#[repr(C)]
204pub struct AstalNetworkWifi {
205 pub parent_instance: gobject::GObject,
206 pub priv_: *mut AstalNetworkWifiPrivate,
207}
208
209impl ::std::fmt::Debug for AstalNetworkWifi {
210 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
211 f.debug_struct(&format!("AstalNetworkWifi @ {self:p}"))
212 .finish()
213 }
214}
215
216#[derive(Copy, Clone)]
217#[repr(C)]
218pub struct AstalNetworkWired {
219 pub parent_instance: gobject::GObject,
220 pub priv_: *mut AstalNetworkWiredPrivate,
221 pub connection: *mut nm::NMActiveConnection,
222}
223
224impl ::std::fmt::Debug for AstalNetworkWired {
225 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
226 f.debug_struct(&format!("AstalNetworkWired @ {self:p}"))
227 .field("connection", &self.connection)
228 .finish()
229 }
230}
231
232extern "C" {
233
234 pub fn astal_network_connectivity_get_type() -> GType;
238
239 pub fn astal_network_device_state_get_type() -> GType;
243
244 pub fn astal_network_internet_get_type() -> GType;
248
249 pub fn astal_network_primary_get_type() -> GType;
253
254 pub fn astal_network_state_get_type() -> GType;
258
259 pub fn astal_network_access_point_get_type() -> GType;
263 pub fn astal_network_access_point_get_connections(
264 self_: *mut AstalNetworkAccessPoint,
265 ) -> *mut glib::GPtrArray;
266 pub fn astal_network_access_point_get_path(self_: *mut AstalNetworkAccessPoint) -> *mut c_char;
267 pub fn astal_network_access_point_activate(
268 self_: *mut AstalNetworkAccessPoint,
269 password: *const c_char,
270 _callback_: gio::GAsyncReadyCallback,
271 _callback__target: *mut c_void,
272 );
273 pub fn astal_network_access_point_activate_finish(
274 self_: *mut AstalNetworkAccessPoint,
275 _res_: *mut gio::GAsyncResult,
276 error: *mut *mut glib::GError,
277 );
278 pub fn astal_network_access_point_get_bandwidth(self_: *mut AstalNetworkAccessPoint) -> c_uint;
279 pub fn astal_network_access_point_get_bssid(self_: *mut AstalNetworkAccessPoint)
280 -> *mut c_char;
281 pub fn astal_network_access_point_get_frequency(self_: *mut AstalNetworkAccessPoint) -> c_uint;
282 pub fn astal_network_access_point_get_last_seen(self_: *mut AstalNetworkAccessPoint) -> c_int;
283 pub fn astal_network_access_point_get_max_bitrate(
284 self_: *mut AstalNetworkAccessPoint,
285 ) -> c_uint;
286 pub fn astal_network_access_point_get_strength(self_: *mut AstalNetworkAccessPoint) -> u8;
287 pub fn astal_network_access_point_get_icon_name(
288 self_: *mut AstalNetworkAccessPoint,
289 ) -> *const c_char;
290 pub fn astal_network_access_point_get_mode(
291 self_: *mut AstalNetworkAccessPoint,
292 ) -> nm::NM80211Mode;
293 pub fn astal_network_access_point_get_flags(
294 self_: *mut AstalNetworkAccessPoint,
295 ) -> nm::NM80211ApFlags;
296 pub fn astal_network_access_point_get_rsn_flags(
297 self_: *mut AstalNetworkAccessPoint,
298 ) -> nm::NM80211ApSecurityFlags;
299 pub fn astal_network_access_point_get_wpa_flags(
300 self_: *mut AstalNetworkAccessPoint,
301 ) -> nm::NM80211ApSecurityFlags;
302 pub fn astal_network_access_point_get_requires_password(
303 self_: *mut AstalNetworkAccessPoint,
304 ) -> gboolean;
305 pub fn astal_network_access_point_get_ssid(self_: *mut AstalNetworkAccessPoint) -> *mut c_char;
306
307 pub fn astal_network_network_get_type() -> GType;
311 pub fn astal_network_network_get_default() -> *mut AstalNetworkNetwork;
312 pub fn astal_network_network_new() -> *mut AstalNetworkNetwork;
313 pub fn astal_network_network_get_client(self_: *mut AstalNetworkNetwork) -> *mut nm::NMClient;
314 pub fn astal_network_network_get_wifi(self_: *mut AstalNetworkNetwork)
315 -> *mut AstalNetworkWifi;
316 pub fn astal_network_network_get_wired(
317 self_: *mut AstalNetworkNetwork,
318 ) -> *mut AstalNetworkWired;
319 pub fn astal_network_network_get_primary(
320 self_: *mut AstalNetworkNetwork,
321 ) -> AstalNetworkPrimary;
322 pub fn astal_network_network_get_connectivity(
323 self_: *mut AstalNetworkNetwork,
324 ) -> AstalNetworkConnectivity;
325 pub fn astal_network_network_get_state(self_: *mut AstalNetworkNetwork) -> AstalNetworkState;
326
327 pub fn astal_network_wifi_get_type() -> GType;
331 pub fn astal_network_wifi_scan(self_: *mut AstalNetworkWifi);
332 pub fn astal_network_wifi_deactivate_connection(
333 self_: *mut AstalNetworkWifi,
334 _callback_: gio::GAsyncReadyCallback,
335 _callback__target: *mut c_void,
336 );
337 pub fn astal_network_wifi_deactivate_connection_finish(
338 self_: *mut AstalNetworkWifi,
339 _res_: *mut gio::GAsyncResult,
340 error: *mut *mut glib::GError,
341 );
342 pub fn astal_network_wifi_get_device(self_: *mut AstalNetworkWifi) -> *mut nm::NMDeviceWifi;
343 pub fn astal_network_wifi_set_device(
344 self_: *mut AstalNetworkWifi,
345 value: *mut nm::NMDeviceWifi,
346 );
347 pub fn astal_network_wifi_get_active_connection(
348 self_: *mut AstalNetworkWifi,
349 ) -> *mut nm::NMActiveConnection;
350 pub fn astal_network_wifi_get_active_access_point(
351 self_: *mut AstalNetworkWifi,
352 ) -> *mut AstalNetworkAccessPoint;
353 pub fn astal_network_wifi_get_access_points(self_: *mut AstalNetworkWifi) -> *mut glib::GList;
354 pub fn astal_network_wifi_get_enabled(self_: *mut AstalNetworkWifi) -> gboolean;
355 pub fn astal_network_wifi_set_enabled(self_: *mut AstalNetworkWifi, value: gboolean);
356 pub fn astal_network_wifi_get_internet(self_: *mut AstalNetworkWifi) -> AstalNetworkInternet;
357 pub fn astal_network_wifi_get_bandwidth(self_: *mut AstalNetworkWifi) -> c_uint;
358 pub fn astal_network_wifi_get_ssid(self_: *mut AstalNetworkWifi) -> *const c_char;
359 pub fn astal_network_wifi_get_strength(self_: *mut AstalNetworkWifi) -> u8;
360 pub fn astal_network_wifi_get_frequency(self_: *mut AstalNetworkWifi) -> c_uint;
361 pub fn astal_network_wifi_get_state(self_: *mut AstalNetworkWifi) -> AstalNetworkDeviceState;
362 pub fn astal_network_wifi_get_icon_name(self_: *mut AstalNetworkWifi) -> *const c_char;
363 pub fn astal_network_wifi_get_is_hotspot(self_: *mut AstalNetworkWifi) -> gboolean;
364 pub fn astal_network_wifi_get_scanning(self_: *mut AstalNetworkWifi) -> gboolean;
365
366 pub fn astal_network_wired_get_type() -> GType;
370 pub fn astal_network_wired_get_device(
371 self_: *mut AstalNetworkWired,
372 ) -> *mut nm::NMDeviceEthernet;
373 pub fn astal_network_wired_set_device(
374 self_: *mut AstalNetworkWired,
375 value: *mut nm::NMDeviceEthernet,
376 );
377 pub fn astal_network_wired_get_speed(self_: *mut AstalNetworkWired) -> c_uint;
378 pub fn astal_network_wired_get_internet(self_: *mut AstalNetworkWired) -> AstalNetworkInternet;
379 pub fn astal_network_wired_get_state(self_: *mut AstalNetworkWired) -> AstalNetworkDeviceState;
380 pub fn astal_network_wired_get_icon_name(self_: *mut AstalNetworkWired) -> *const c_char;
381
382 pub fn astal_network_primary_to_string(self_: AstalNetworkPrimary) -> *mut c_char;
386 pub fn astal_network_primary_from_connection_type(type_: *const c_char) -> AstalNetworkPrimary;
387 pub fn astal_network_state_to_string(self_: AstalNetworkState) -> *mut c_char;
388 pub fn astal_network_connectivity_to_string(self_: AstalNetworkConnectivity) -> *mut c_char;
389 pub fn astal_network_device_state_to_string(self_: AstalNetworkDeviceState) -> *mut c_char;
390 pub fn astal_network_internet_from_device(device: *mut nm::NMDevice) -> AstalNetworkInternet;
391 pub fn astal_network_internet_to_string(self_: AstalNetworkInternet) -> *mut c_char;
392 pub fn astal_network_get_default() -> *mut AstalNetworkNetwork;
393
394}