gio/auto/
network_service.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::{ffi, SocketConnectable};
6use glib::{
7    prelude::*,
8    signal::{connect_raw, SignalHandlerId},
9    translate::*,
10};
11use std::boxed::Box as Box_;
12
13glib::wrapper! {
14    #[doc(alias = "GNetworkService")]
15    pub struct NetworkService(Object<ffi::GNetworkService, ffi::GNetworkServiceClass>) @implements SocketConnectable;
16
17    match fn {
18        type_ => || ffi::g_network_service_get_type(),
19    }
20}
21
22impl NetworkService {
23    pub const NONE: Option<&'static NetworkService> = None;
24
25    #[doc(alias = "g_network_service_new")]
26    pub fn new(service: &str, protocol: &str, domain: &str) -> NetworkService {
27        unsafe {
28            from_glib_full(ffi::g_network_service_new(
29                service.to_glib_none().0,
30                protocol.to_glib_none().0,
31                domain.to_glib_none().0,
32            ))
33        }
34    }
35}
36
37pub trait NetworkServiceExt: IsA<NetworkService> + 'static {
38    #[doc(alias = "g_network_service_get_domain")]
39    #[doc(alias = "get_domain")]
40    fn domain(&self) -> glib::GString {
41        unsafe {
42            from_glib_none(ffi::g_network_service_get_domain(
43                self.as_ref().to_glib_none().0,
44            ))
45        }
46    }
47
48    #[doc(alias = "g_network_service_get_protocol")]
49    #[doc(alias = "get_protocol")]
50    fn protocol(&self) -> glib::GString {
51        unsafe {
52            from_glib_none(ffi::g_network_service_get_protocol(
53                self.as_ref().to_glib_none().0,
54            ))
55        }
56    }
57
58    #[doc(alias = "g_network_service_get_scheme")]
59    #[doc(alias = "get_scheme")]
60    fn scheme(&self) -> glib::GString {
61        unsafe {
62            from_glib_none(ffi::g_network_service_get_scheme(
63                self.as_ref().to_glib_none().0,
64            ))
65        }
66    }
67
68    #[doc(alias = "g_network_service_get_service")]
69    #[doc(alias = "get_service")]
70    fn service(&self) -> glib::GString {
71        unsafe {
72            from_glib_none(ffi::g_network_service_get_service(
73                self.as_ref().to_glib_none().0,
74            ))
75        }
76    }
77
78    #[doc(alias = "g_network_service_set_scheme")]
79    #[doc(alias = "scheme")]
80    fn set_scheme(&self, scheme: &str) {
81        unsafe {
82            ffi::g_network_service_set_scheme(
83                self.as_ref().to_glib_none().0,
84                scheme.to_glib_none().0,
85            );
86        }
87    }
88
89    #[doc(alias = "scheme")]
90    fn connect_scheme_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
91        unsafe extern "C" fn notify_scheme_trampoline<
92            P: IsA<NetworkService>,
93            F: Fn(&P) + 'static,
94        >(
95            this: *mut ffi::GNetworkService,
96            _param_spec: glib::ffi::gpointer,
97            f: glib::ffi::gpointer,
98        ) {
99            let f: &F = &*(f as *const F);
100            f(NetworkService::from_glib_borrow(this).unsafe_cast_ref())
101        }
102        unsafe {
103            let f: Box_<F> = Box_::new(f);
104            connect_raw(
105                self.as_ptr() as *mut _,
106                c"notify::scheme".as_ptr() as *const _,
107                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
108                    notify_scheme_trampoline::<Self, F> as *const (),
109                )),
110                Box_::into_raw(f),
111            )
112        }
113    }
114}
115
116impl<O: IsA<NetworkService>> NetworkServiceExt for O {}