// Do not edit. This file is generated.
// MoonBit type: WriteParams
// Specifications: fs.idl
///|
/// [WriteParams](https://developer.mozilla.org/en-US/docs/Web/API/WriteParams)
#external
pub type WriteParams
///|
pub impl TJsValue for WriteParams with to_js(self : WriteParams) -> JsValue = "%identity"
///|
pub impl FromJsAny for WriteParams with from_js_any(value : JsAny) -> WriteParams = "%identity"
///|
pub(open) trait TWriteParamsNewData: TJsValue {}
///|
pub impl TWriteParamsNewData for BufferSource
///|
pub impl TWriteParamsNewData for Blob
///|
pub impl TWriteParamsNewData for String
///|
pub fn WriteParams::new(
type_ : WriteCommandType,
size? : UInt64,
position? : UInt64,
data? : &TWriteParamsNewData,
) -> WriteParams {
write_params_ffi(
TJsValue::to_js(type_),
opt_to_js(size),
opt_to_js(position),
match data {
Some(v) => v.to_js()
None => JsValue::undefined()
},
)
}
///|
pub fn WriteParams::empty() -> WriteParams {
write_params_empty_ffi()
}
///|
pub(open) trait TWriteParamsGetData: TJsValue {}
///|
pub impl TWriteParamsGetData for BufferSource
///|
pub impl TWriteParamsGetData for Blob
///|
pub impl TWriteParamsGetData for String
///|
#external
pub type WriteParamsGetData
///|
pub impl TJsValue for WriteParamsGetData with to_js(self : WriteParamsGetData) -> JsValue = "%identity"
///|
pub impl FromJsAny for WriteParamsGetData with from_js_any(value : JsAny) -> WriteParamsGetData = "%identity"
///|
#deprecated("Use unsafe_into or try_into instead")
pub fn[T : TWriteParamsGetData + FromJsAny] WriteParamsGetData::into(
self : WriteParamsGetData,
) -> T {
FromJsAny::from_js_any(jsvalue_to_jsany(TJsValue::to_js(self)))
}
///|
pub fn[T : TWriteParamsGetData + FromJsAny] WriteParamsGetData::unsafe_into(
self : WriteParamsGetData,
) -> T {
FromJsAny::from_js_any(jsvalue_to_jsany(TJsValue::to_js(self)))
}
///|
pub fn[T : TWriteParamsGetData] WriteParamsGetData::from(
value : T,
) -> WriteParamsGetData = "%identity"
///|
pub impl TWriteParamsGetData for WriteParamsGetData
///|
pub fn WriteParams::type_(self : WriteParams) -> WriteCommandType {
write_params_get_type_ffi(TJsValue::to_js(self))
}
///|
pub fn WriteParams::size(self : WriteParams) -> UInt64? {
write_params_get_size_ffi(TJsValue::to_js(self)).to_option_prim()
}
///|
pub fn WriteParams::position(self : WriteParams) -> UInt64? {
write_params_get_position_ffi(TJsValue::to_js(self)).to_option_prim()
}
///|
pub fn WriteParams::data(self : WriteParams) -> WriteParamsGetData? {
write_params_get_data_ffi(TJsValue::to_js(self)).to_option()
}
///|
#cfg(target="js")
extern "js" fn write_params_ffi(
type_ : JsValue,
size : JsValue,
position : JsValue,
data : JsValue,
) -> WriteParams =
#|(type, size, position, data) => {
#| const obj = {};
#| if (type !== undefined) obj.type = type;
#| if (size !== undefined) obj.size = size;
#| if (position !== undefined) obj.position = position;
#| if (data !== undefined) obj.data = data;
#| return obj;
#|}
///|
#cfg(target="js")
extern "js" fn write_params_empty_ffi() -> WriteParams = "() => {}"
///|
#cfg(target="js")
extern "js" fn write_params_get_type_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.type"
///|
#cfg(target="js")
fn write_params_get_type_ffi(obj : JsValue) -> WriteCommandType {
WriteCommandType::from_unchecked(
write_params_get_type_ffi_js(obj).unsafe_cast(),
)
}
///|
#cfg(target="js")
extern "js" fn write_params_get_size_ffi(obj : JsValue) -> JsValue = "(obj) => obj.size"
///|
#cfg(target="js")
extern "js" fn write_params_get_position_ffi(obj : JsValue) -> JsValue = "(obj) => obj.position"
///|
#cfg(target="js")
extern "js" fn write_params_get_data_ffi(obj : JsValue) -> JsValue = "(obj) => obj.data"
///|
#cfg(target="wasm-gc")
fn write_params_ffi(
type_ : JsValue,
size : JsValue,
position : JsValue,
data : JsValue,
) -> WriteParams = "webapi_WriteParams" "new"
///|
#cfg(target="wasm-gc")
fn write_params_empty_ffi() -> WriteParams = "webapi_Dictionary" "empty"
///|
#cfg(target="wasm-gc")
fn write_params_get_type_ffi_wasm(obj : JsValue) -> JsValue = "webapi_WriteParams" "get_type"
///|
#cfg(target="wasm-gc")
fn write_params_get_type_ffi(obj : JsValue) -> WriteCommandType {
WriteCommandType::from_unchecked(
jsvalue_to_string(write_params_get_type_ffi_wasm(obj)),
)
}
///|
#cfg(target="wasm-gc")
fn write_params_get_size_ffi(obj : JsValue) -> JsValue = "webapi_WriteParams" "get_size"
///|
#cfg(target="wasm-gc")
fn write_params_get_position_ffi(obj : JsValue) -> JsValue = "webapi_WriteParams" "get_position"
///|
#cfg(target="wasm-gc")
fn write_params_get_data_ffi(obj : JsValue) -> JsValue = "webapi_WriteParams" "get_data"