// GENERATED — DO NOT EDIT

///|
/// [Upstream documentation](https://docs.gtk.org/gio/class.UnixCredentialsMessage.html).
pub type UnixCredentialsMessage

///|
pub(open) trait IUnixCredentialsMessage {
  fn as_unix_credentials_message(Self) -> UnixCredentialsMessage
  fn get_credentials(Self) -> Credentials = _
}

///|
pub impl IUnixCredentialsMessage for UnixCredentialsMessage with fn as_unix_credentials_message(
  self,
) {
  self
}

///|
/// [Upstream documentation](https://docs.gtk.org/gio/ctor.UnixCredentialsMessage.new.html).
pub extern "c" fn UnixCredentialsMessage::new() -> UnixCredentialsMessage = "moonbit_g_unix_credentials_message_new"

///|
#borrow(credentials)
extern "c" fn moonbit_g_unix_credentials_message_new_with_credentials(
  credentials : Credentials,
) -> UnixCredentialsMessage = "moonbit_g_unix_credentials_message_new_with_credentials"

///|
/// [Upstream documentation](https://docs.gtk.org/gio/ctor.UnixCredentialsMessage.new_with_credentials.html).
pub fn UnixCredentialsMessage::new_with_credentials(
  credentials : &ICredentials,
) -> UnixCredentialsMessage {
  moonbit_g_unix_credentials_message_new_with_credentials(
    credentials.as_credentials(),
  )
}

///|
/// [Upstream documentation](https://docs.gtk.org/gio/type_func.UnixCredentialsMessage.is_supported.html).
pub extern "c" fn UnixCredentialsMessage::is_supported() -> Bool = "moonbit_g_unix_credentials_message_is_supported"

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.UnixCredentialsMessage.get_credentials.html).
#borrow(self)
pub extern "c" fn UnixCredentialsMessage::get_credentials(
  self : UnixCredentialsMessage,
) -> Credentials = "moonbit_g_unix_credentials_message_get_credentials"

///|
impl IUnixCredentialsMessage with fn get_credentials(self) -> Credentials {
  self.as_unix_credentials_message().get_credentials()
}

///|
pub fn UnixCredentialsMessage::as_socket_control_message(
  self : UnixCredentialsMessage,
) -> SocketControlMessage = "%identity"

///|
pub impl ISocketControlMessage for UnixCredentialsMessage with fn as_socket_control_message(
  self,
) {
  self.as_socket_control_message()
}

///|
pub fn UnixCredentialsMessage::as_gobject_object(
  self : UnixCredentialsMessage,
) -> @gobject.Object = "%identity"

///|
pub impl @gobject.IObject for UnixCredentialsMessage with fn as_object(self) {
  self.as_gobject_object()
}