// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/ink-enhancement
///|
/// InkPresenterParam dictionary
pub(all) struct InkPresenterParam {
presentationArea : Nullable[Element]
}
///|
/// Create a new InkPresenterParam with default values
pub fn InkPresenterParam::default() -> InkPresenterParam {
InkPresenterParam::{ presentationArea: Nullable::Undefined }
}
///|
extern "js" fn InkPresenterParam::to_js_ffi(
self : InkPresenterParam,
) -> JsValue =
#| (self) => ({
#| presentationArea: ((() => { const v = self.presentationArea; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn InkPresenterParam::to_js(self : InkPresenterParam) -> JsValue {
InkPresenterParam::to_js_ffi(self)
}
///|
extern "js" fn InkPresenterParam::from_js_ffi(
value : JsValue,
) -> InkPresenterParam =
#| (v) => ({
#| presentationArea: (v.presentationArea === undefined ? { $tag: 0 } : v.presentationArea === null ? { $tag: 1 } : { $tag: 2, _0: v.presentationArea })
#| })
///|
/// Convert from JsValue
pub fn InkPresenterParam::from_js(value : JsValue) -> InkPresenterParam {
InkPresenterParam::from_js_ffi(value)
}
///|
/// InkTrailStyle dictionary
pub(all) struct InkTrailStyle {
color : String
diameter : Double
}
///|
/// Create a new InkTrailStyle with default values
pub fn InkTrailStyle::default() -> InkTrailStyle {
InkTrailStyle::{ color: "", diameter: 0 }
}
///|
extern "js" fn InkTrailStyle::to_js_ffi(self : InkTrailStyle) -> JsValue =
#| (self) => ({
#| color: self.color,
#| diameter: self.diameter
#| })
///|
/// Convert to JsValue
pub fn InkTrailStyle::to_js(self : InkTrailStyle) -> JsValue {
InkTrailStyle::to_js_ffi(self)
}
///|
extern "js" fn InkTrailStyle::from_js_ffi(value : JsValue) -> InkTrailStyle =
#| (v) => ({
#| color: v.color,
#| diameter: v.diameter
#| })
///|
/// Convert from JsValue
pub fn InkTrailStyle::from_js(value : JsValue) -> InkTrailStyle {
InkTrailStyle::from_js_ffi(value)
}
///|
/// Ink interface
pub type Ink
///|
pub extern "js" fn Ink::to_js_value(self : Ink) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to Ink (unchecked)
pub extern "js" fn Ink::from_js_value(v : JsValue) -> Ink =
#| (v) => v
///|
/// Safely cast JsValue to Ink (checked with instanceof)
pub extern "js" fn Ink::from_js_value_opt(v : JsValue) -> Ink? =
#| (v) => (v instanceof Ink) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to Ink (checked with instanceof)
pub extern "js" fn JsValue::as_ink(self : JsValue) -> Ink? =
#| (self) => (self instanceof Ink) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to Ink (unchecked)
pub extern "js" fn JsValue::to_ink(self : JsValue) -> Ink =
#| (self) => self
///|
/// Error type for throwing methods
pub(all) enum InkRequestPresenterError {
Error(JsError)
OtherError(JsError)
} derive(Show)
///|
pub extern "js" fn Ink::request_presenter(
self : Ink,
) -> Promise[Result[DelegatedInkTrailPresenter, InkRequestPresenterError]] =
#| (self) => self.requestPresenter().then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'Error') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }))
///|
extern "js" fn Ink::request_presenter_with_param_ffi(
self : Ink,
param : JsValue,
) -> Promise[Result[DelegatedInkTrailPresenter, InkRequestPresenterError]] =
#| (self, param) => self.requestPresenter(param).then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'Error') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }))
///|
pub fn Ink::request_presenter_with_param(
self : Ink,
param : InkPresenterParam,
) -> Promise[Result[DelegatedInkTrailPresenter, InkRequestPresenterError]] {
Ink::request_presenter_with_param_ffi(self, param.to_js())
}
///|
/// DelegatedInkTrailPresenter interface
pub type DelegatedInkTrailPresenter
///|
pub extern "js" fn DelegatedInkTrailPresenter::to_js_value(
self : DelegatedInkTrailPresenter,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to DelegatedInkTrailPresenter (unchecked)
pub extern "js" fn DelegatedInkTrailPresenter::from_js_value(
v : JsValue,
) -> DelegatedInkTrailPresenter =
#| (v) => v
///|
/// Safely cast JsValue to DelegatedInkTrailPresenter (checked with instanceof)
pub extern "js" fn DelegatedInkTrailPresenter::from_js_value_opt(
v : JsValue,
) -> DelegatedInkTrailPresenter? =
#| (v) => (v instanceof DelegatedInkTrailPresenter) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to DelegatedInkTrailPresenter (checked with instanceof)
pub extern "js" fn JsValue::as_delegated_ink_trail_presenter(
self : JsValue,
) -> DelegatedInkTrailPresenter? =
#| (self) => (self instanceof DelegatedInkTrailPresenter) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to DelegatedInkTrailPresenter (unchecked)
pub extern "js" fn JsValue::to_delegated_ink_trail_presenter(
self : JsValue,
) -> DelegatedInkTrailPresenter =
#| (self) => self
///|
/// Error type for throwing methods
pub(all) enum DelegatedInkTrailPresenterUpdateInkTrailStartPointError {
Error(JsError)
OtherError(JsError)
} derive(Show)
///|
pub extern "js" fn DelegatedInkTrailPresenter::get_presentation_area(
self : DelegatedInkTrailPresenter,
) -> Element? =
#| (self) => (() => { const v = self.presentationArea; return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })()
///|
extern "js" fn DelegatedInkTrailPresenter::update_ink_trail_start_point_ffi(
self : DelegatedInkTrailPresenter,
event : PointerEvent,
style : JsValue,
) -> Result[Unit, DelegatedInkTrailPresenterUpdateInkTrailStartPointError] =
#| (self, event, style) => (() => { try { self.updateInkTrailStartPoint(event, style); return { $tag: 1, _0: undefined }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'Error') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub fn DelegatedInkTrailPresenter::update_ink_trail_start_point(
self : DelegatedInkTrailPresenter,
event : PointerEvent,
style : InkTrailStyle,
) -> Result[Unit, DelegatedInkTrailPresenterUpdateInkTrailStartPointError] {
DelegatedInkTrailPresenter::update_ink_trail_start_point_ffi(
self,
event,
style.to_js(),
)
}