// GENERATED — DO NOT EDIT

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

///|
pub(open) trait IDebugController {
  fn as_debug_controller(Self) -> DebugController
  fn get_debug_enabled(Self) -> Bool = _
  fn set_debug_enabled(Self, Bool) -> Unit = _
}

///|
pub impl IDebugController for DebugController with fn as_debug_controller(self) {
  self
}

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

///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.DebugController.set_debug_enabled.html).
#borrow(self)
pub extern "c" fn DebugController::set_debug_enabled(
  self : DebugController,
  debug_enabled : Bool,
) = "moonbit_g_debug_controller_set_debug_enabled"

///|
impl IDebugController with fn get_debug_enabled(self) -> Bool {
  self.as_debug_controller().get_debug_enabled()
}

///|
impl IDebugController with fn set_debug_enabled(self, debug_enabled) -> Unit {
  self.as_debug_controller().set_debug_enabled(debug_enabled)
}

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

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