// Do not edit. This file is generated.
// MoonBit type: DOMPointInit
// Specifications: geometry.idl
///|
/// [DOMPointInit](https://developer.mozilla.org/en-US/docs/Web/API/DOMPointInit)
#external
pub type DOMPointInit
///|
pub impl TJsValue for DOMPointInit with to_js(self : DOMPointInit) -> JsValue = "%identity"
///|
pub impl FromJsAny for DOMPointInit with from_js_any(value : JsAny) -> DOMPointInit = "%identity"
///|
pub fn DOMPointInit::new(
x? : Double,
y? : Double,
z? : Double,
w? : Double,
) -> DOMPointInit {
dom_point_init_ffi(opt_to_js(x), opt_to_js(y), opt_to_js(z), opt_to_js(w))
}
///|
pub fn DOMPointInit::empty() -> DOMPointInit {
dom_point_init_empty_ffi()
}
///|
pub fn DOMPointInit::x(self : DOMPointInit) -> Double? {
dom_point_init_get_x_ffi(TJsValue::to_js(self)).to_option_prim()
}
///|
pub fn DOMPointInit::y(self : DOMPointInit) -> Double? {
dom_point_init_get_y_ffi(TJsValue::to_js(self)).to_option_prim()
}
///|
pub fn DOMPointInit::z(self : DOMPointInit) -> Double? {
dom_point_init_get_z_ffi(TJsValue::to_js(self)).to_option_prim()
}
///|
pub fn DOMPointInit::w(self : DOMPointInit) -> Double? {
dom_point_init_get_w_ffi(TJsValue::to_js(self)).to_option_prim()
}
///|
#cfg(target="js")
extern "js" fn dom_point_init_ffi(
x : JsValue,
y : JsValue,
z : JsValue,
w : JsValue,
) -> DOMPointInit =
#|(x, y, z, w) => {
#| const obj = {};
#| if (x !== undefined) obj.x = x;
#| if (y !== undefined) obj.y = y;
#| if (z !== undefined) obj.z = z;
#| if (w !== undefined) obj.w = w;
#| return obj;
#|}
///|
#cfg(target="js")
extern "js" fn dom_point_init_empty_ffi() -> DOMPointInit = "() => {}"
///|
#cfg(target="js")
extern "js" fn dom_point_init_get_x_ffi(obj : JsValue) -> JsValue = "(obj) => obj.x"
///|
#cfg(target="js")
extern "js" fn dom_point_init_get_y_ffi(obj : JsValue) -> JsValue = "(obj) => obj.y"
///|
#cfg(target="js")
extern "js" fn dom_point_init_get_z_ffi(obj : JsValue) -> JsValue = "(obj) => obj.z"
///|
#cfg(target="js")
extern "js" fn dom_point_init_get_w_ffi(obj : JsValue) -> JsValue = "(obj) => obj.w"
///|
#cfg(target="wasm-gc")
fn dom_point_init_ffi(
x : JsValue,
y : JsValue,
z : JsValue,
w : JsValue,
) -> DOMPointInit = "webapi_DOMPointInit" "new"
///|
#cfg(target="wasm-gc")
fn dom_point_init_empty_ffi() -> DOMPointInit = "webapi_Dictionary" "empty"
///|
#cfg(target="wasm-gc")
fn dom_point_init_get_x_ffi(obj : JsValue) -> JsValue = "webapi_DOMPointInit" "get_x"
///|
#cfg(target="wasm-gc")
fn dom_point_init_get_y_ffi(obj : JsValue) -> JsValue = "webapi_DOMPointInit" "get_y"
///|
#cfg(target="wasm-gc")
fn dom_point_init_get_z_ffi(obj : JsValue) -> JsValue = "webapi_DOMPointInit" "get_z"
///|
#cfg(target="wasm-gc")
fn dom_point_init_get_w_ffi(obj : JsValue) -> JsValue = "webapi_DOMPointInit" "get_w"