// GENERATED — DO NOT EDIT

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

///|
pub(open) trait IMemoryMonitor {
  fn as_memory_monitor(Self) -> MemoryMonitor
}

///|
pub impl IMemoryMonitor for MemoryMonitor with fn as_memory_monitor(self) {
  self
}

///|
/// Implementation contract for MemoryMonitor.low_memory_warning. Self is the retained MoonBit state; the second parameter is the invoked MemoryMonitor object.
pub(open) trait VMemoryMonitorLowMemoryWarning {
  fn low_memory_warning(Self, MemoryMonitor, MemoryMonitorWarningLevel) -> Unit
}

///|
/// [Upstream documentation](https://docs.gtk.org/gio/type_func.MemoryMonitor.dup_default.html).
pub extern "c" fn MemoryMonitor::dup_default() -> MemoryMonitor = "moonbit_g_memory_monitor_dup_default"

///|
pub fn MemoryMonitor::as_initable(self : MemoryMonitor) -> Initable = "%identity"

///|
pub impl IInitable for MemoryMonitor with fn as_initable(self) {
  self.as_initable()
}