// GENERATED — DO NOT EDIT

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

///|
pub(open) trait IPollableOutputStream {
  fn as_pollable_output_stream(Self) -> PollableOutputStream
  fn can_poll(Self) -> Bool = _
  fn is_writable(Self) -> Bool = _
}

///|
pub impl IPollableOutputStream for PollableOutputStream with fn as_pollable_output_stream(
  self,
) {
  self
}

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.PollableOutputStream.can_poll.html).
#borrow(self)
pub extern "c" fn PollableOutputStream::can_poll(
  self : PollableOutputStream,
) -> Bool = "moonbit_g_pollable_output_stream_can_poll"

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.PollableOutputStream.is_writable.html).
#borrow(self)
pub extern "c" fn PollableOutputStream::is_writable(
  self : PollableOutputStream,
) -> Bool = "moonbit_g_pollable_output_stream_is_writable"

///|
impl IPollableOutputStream with fn can_poll(self) -> Bool {
  self.as_pollable_output_stream().can_poll()
}

///|
impl IPollableOutputStream with fn is_writable(self) -> Bool {
  self.as_pollable_output_stream().is_writable()
}

///|
pub fn PollableOutputStream::as_output_stream(
  self : PollableOutputStream,
) -> OutputStream = "%identity"

///|
pub impl IOutputStream for PollableOutputStream with fn as_output_stream(self) {
  self.as_output_stream()
}