// GENERATED — DO NOT EDIT

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

///|
pub(open) trait ISocketConnectable {
  fn as_socket_connectable(Self) -> SocketConnectable
  fn enumerate(Self) -> SocketAddressEnumerator = _
  fn proxy_enumerate(Self) -> SocketAddressEnumerator = _
  fn to_string(Self) -> String = _
}

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

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.SocketConnectable.enumerate.html).
#borrow(self)
pub extern "c" fn SocketConnectable::enumerate(
  self : SocketConnectable,
) -> SocketAddressEnumerator = "moonbit_g_socket_connectable_enumerate"

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.SocketConnectable.proxy_enumerate.html).
#borrow(self)
pub extern "c" fn SocketConnectable::proxy_enumerate(
  self : SocketConnectable,
) -> SocketAddressEnumerator = "moonbit_g_socket_connectable_proxy_enumerate"

///|
#borrow(self_)
extern "c" fn moonbit_g_socket_connectable_to_string(
  self_ : SocketConnectable,
) -> Bytes = "moonbit_g_socket_connectable_to_string"

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.SocketConnectable.to_string.html).
pub fn SocketConnectable::to_string(self : SocketConnectable) -> String {
  @encoding/utf8.decode_lossy(moonbit_g_socket_connectable_to_string(self))
}

///|
impl ISocketConnectable with fn enumerate(self) -> SocketAddressEnumerator {
  self.as_socket_connectable().enumerate()
}

///|
impl ISocketConnectable with fn proxy_enumerate(self) -> SocketAddressEnumerator {
  self.as_socket_connectable().proxy_enumerate()
}

///|
impl ISocketConnectable with fn to_string(self) -> String {
  self.as_socket_connectable().to_string()
}