// GENERATED — DO NOT EDIT

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

///|
pub(open) trait ILayoutChild {
  fn as_layout_child(Self) -> LayoutChild
  fn get_child_widget(Self) -> Widget = _
  fn get_layout_manager(Self) -> LayoutManager = _
}

///|
pub impl ILayoutChild for LayoutChild with fn as_layout_child(self) {
  self
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.LayoutChild.get_child_widget.html).
#borrow(self)
pub extern "c" fn LayoutChild::get_child_widget(self : LayoutChild) -> Widget = "moonbit_gtk_layout_child_get_child_widget"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.LayoutChild.get_layout_manager.html).
#borrow(self)
pub extern "c" fn LayoutChild::get_layout_manager(
  self : LayoutChild,
) -> LayoutManager = "moonbit_gtk_layout_child_get_layout_manager"

///|
impl ILayoutChild with fn get_child_widget(self) -> Widget {
  self.as_layout_child().get_child_widget()
}

///|
impl ILayoutChild with fn get_layout_manager(self) -> LayoutManager {
  self.as_layout_child().get_layout_manager()
}

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

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