// GENERATED — DO NOT EDIT

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

///|
pub(open) trait ISimplePermission {
  fn as_simple_permission(Self) -> SimplePermission
}

///|
pub impl ISimplePermission for SimplePermission with fn as_simple_permission(
  self,
) {
  self
}

///|
/// [Upstream documentation](https://docs.gtk.org/gio/ctor.SimplePermission.new.html).
pub extern "c" fn SimplePermission::new(allowed : Bool) -> SimplePermission = "moonbit_g_simple_permission_new"

///|
pub fn SimplePermission::as_permission(self : SimplePermission) -> Permission = "%identity"

///|
pub impl IPermission for SimplePermission with fn as_permission(self) {
  self.as_permission()
}

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

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