Skip to main content

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 {}