///|
type Nullable[T]
///|
extern "c" fn moonbit_glib_nullable_null() -> Nullable[Unit] = "moonbit_glib_nullable_null"
///|
pub fn[T] Nullable::null() -> Nullable[T] {
moonbit_glib_nullable_null().cast()
}
///|
fn[T, U] Nullable::cast(self : Nullable[T]) -> Nullable[U] = "%identity"
///|
fn[T] Nullable::unsafe_of_value(value : T) -> Nullable[T] = "%identity"
///|
fn[T] Nullable::unsafe_to_value(self : Nullable[T]) -> T = "%identity"
///|
#borrow(nullable)
extern "c" fn moonbit_glib_nullable_is_null(nullable : Nullable[Unit]) -> Bool = "moonbit_glib_nullable_is_null"
///|
fn[T] Nullable::is_null(self : Nullable[T]) -> Bool {
moonbit_glib_nullable_is_null(self.cast())
}
///|
pub fn[T] Nullable::to_option(self : Nullable[T]) -> T? {
if self.is_null() {
None
} else {
Some(self.unsafe_to_value())
}
}
///|
pub fn[T] Nullable::some(value : T) -> Nullable[T] {
Nullable::unsafe_of_value(value)
}