// GENERATED — DO NOT EDIT

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

///|
pub(open) trait IOrientable {
  fn as_orientable(Self) -> Orientable
  fn get_orientation(Self) -> Orientation = _
  fn set_orientation(Self, Orientation) -> Unit = _
}

///|
pub impl IOrientable for Orientable with fn as_orientable(self) {
  self
}

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Orientable.get_orientation.html).
#borrow(self)
pub extern "c" fn Orientable::get_orientation(self : Orientable) -> Orientation = "moonbit_gtk_orientable_get_orientation"

///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.Orientable.set_orientation.html).
#borrow(self)
pub extern "c" fn Orientable::set_orientation(
  self : Orientable,
  orientation : Orientation,
) = "moonbit_gtk_orientable_set_orientation"

///|
impl IOrientable with fn get_orientation(self) -> Orientation {
  self.as_orientable().get_orientation()
}

///|
impl IOrientable with fn set_orientation(self, orientation) -> Unit {
  self.as_orientable().set_orientation(orientation)
}