gio/auto/unix_credentials_message.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::{Credentials, SocketControlMessage, ffi};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 /// ` belonged to the UNIX-specific
10 /// GIO interfaces, thus you had to use the `gio-unix-2.0.pc` pkg-config file
11 /// when using it. This is no longer necessary since GLib 2.72.
12 ///
13 /// ## Properties
14 ///
15 ///
16 /// #### `credentials`
17 /// The credentials stored in the message.
18 ///
19 /// Readable | Writable | Construct Only
20 ///
21 /// # Implements
22 ///
23 /// [`UnixCredentialsMessageExt`][trait@crate::prelude::UnixCredentialsMessageExt], [`SocketControlMessageExt`][trait@crate::prelude::SocketControlMessageExt], [`trait@glib::ObjectExt`], [`SocketControlMessageExtManual`][trait@crate::prelude::SocketControlMessageExtManual]
24 #[doc(alias = "GUnixCredentialsMessage")]
25 pub struct UnixCredentialsMessage(Object<ffi::GUnixCredentialsMessage, ffi::GUnixCredentialsMessageClass>) @extends SocketControlMessage;
26
27 match fn {
28 type_ => || ffi::g_unix_credentials_message_get_type(),
29 }
30}
31
32impl UnixCredentialsMessage {
33 pub const NONE: Option<&'static UnixCredentialsMessage> = None;
34
35 /// Creates a new #GUnixCredentialsMessage with credentials matching the current processes.
36 ///
37 /// # Returns
38 ///
39 /// a new #GUnixCredentialsMessage
40 #[doc(alias = "g_unix_credentials_message_new")]
41 pub fn new() -> UnixCredentialsMessage {
42 unsafe {
43 SocketControlMessage::from_glib_full(ffi::g_unix_credentials_message_new())
44 .unsafe_cast()
45 }
46 }
47
48 /// Creates a new #GUnixCredentialsMessage holding @credentials.
49 /// ## `credentials`
50 /// A #GCredentials object.
51 ///
52 /// # Returns
53 ///
54 /// a new #GUnixCredentialsMessage
55 #[doc(alias = "g_unix_credentials_message_new_with_credentials")]
56 #[doc(alias = "new_with_credentials")]
57 pub fn with_credentials(credentials: &Credentials) -> UnixCredentialsMessage {
58 unsafe {
59 SocketControlMessage::from_glib_full(
60 ffi::g_unix_credentials_message_new_with_credentials(credentials.to_glib_none().0),
61 )
62 .unsafe_cast()
63 }
64 }
65
66 /// Checks if passing #GCredentials on a #GSocket is supported on this platform.
67 ///
68 /// # Returns
69 ///
70 /// [`true`] if supported, [`false`] otherwise
71 #[doc(alias = "g_unix_credentials_message_is_supported")]
72 pub fn is_supported() -> bool {
73 unsafe { from_glib(ffi::g_unix_credentials_message_is_supported()) }
74 }
75}
76
77impl Default for UnixCredentialsMessage {
78 fn default() -> Self {
79 Self::new()
80 }
81}
82
83/// Trait containing all [`struct@UnixCredentialsMessage`] methods.
84///
85/// # Implementors
86///
87/// [`UnixCredentialsMessage`][struct@crate::UnixCredentialsMessage]
88pub trait UnixCredentialsMessageExt: IsA<UnixCredentialsMessage> + 'static {
89 /// Gets the credentials stored in @self.
90 ///
91 /// # Returns
92 ///
93 /// A #GCredentials instance. Do not free, it is owned by @self.
94 #[doc(alias = "g_unix_credentials_message_get_credentials")]
95 #[doc(alias = "get_credentials")]
96 fn credentials(&self) -> Credentials {
97 unsafe {
98 from_glib_none(ffi::g_unix_credentials_message_get_credentials(
99 self.as_ref().to_glib_none().0,
100 ))
101 }
102 }
103}
104
105impl<O: IsA<UnixCredentialsMessage>> UnixCredentialsMessageExt for O {}