// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://docs.gtk.org/gio/iface.Initable.html).
pub type Initable
///|
pub(open) trait IInitable {
fn as_initable(Self) -> Initable
fn init(Self, &ICancellable?) -> Bool raise @glib.Error_ = _
}
///|
pub impl IInitable for Initable with fn as_initable(self) {
self
}
///|
#borrow(self_, cancellable, error)
extern "c" fn moonbit_g_initable_init(
self_ : Initable,
cancellable : @glib.Nullable[Cancellable],
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Bool = "moonbit_g_initable_init"
///|
/// [Upstream documentation](https://docs.gtk.org/gio/method.Initable.init.html).
pub fn Initable::init(
self : Initable,
cancellable : &ICancellable?,
) -> Bool raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let result = moonbit_g_initable_init(
self,
match cancellable {
Some(v) => @glib.Nullable::some(v.as_cancellable())
None => @glib.Nullable::null()
},
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => ()
}
result
}
///|
impl IInitable with fn init(self, cancellable) -> Bool raise @glib.Error_ {
self.as_initable().init(cancellable)
}