// GENERATED — DO NOT EDIT

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

///|
pub(open) trait ISocketAddress {
  fn as_socket_address(Self) -> SocketAddress
  fn get_family(Self) -> SocketFamily = _
  fn get_native_size(Self) -> Int64 = _
}

///|
pub impl ISocketAddress for SocketAddress with fn as_socket_address(self) {
  self
}

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.SocketAddress.get_family.html).
#borrow(self)
pub extern "c" fn SocketAddress::get_family(
  self : SocketAddress,
) -> SocketFamily = "moonbit_g_socket_address_get_family"

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.SocketAddress.get_native_size.html).
#borrow(self)
pub extern "c" fn SocketAddress::get_native_size(self : SocketAddress) -> Int64 = "moonbit_g_socket_address_get_native_size"

///|
/// Creates a new SocketAddress with default property values.
pub extern "c" fn SocketAddress::new() -> SocketAddress = "moonbit_g_socket_address_new"

///|
impl ISocketAddress with fn get_family(self) -> SocketFamily {
  self.as_socket_address().get_family()
}

///|
impl ISocketAddress with fn get_native_size(self) -> Int64 {
  self.as_socket_address().get_native_size()
}

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

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

///|
pub fn SocketAddress::as_socket_connectable(
  self : SocketAddress,
) -> SocketConnectable = "%identity"

///|
pub impl ISocketConnectable for SocketAddress with fn as_socket_connectable(
  self,
) {
  self.as_socket_connectable()
}