// Do not edit. This file is generated.
// MoonBit type: CharacterData
// Specifications: dom.idl
///|
/// [CharacterData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData)
#external
pub type CharacterData
///|
pub impl TJsValue for CharacterData with to_js(self : CharacterData) -> JsValue = "%identity"
///|
pub impl FromJsAny for CharacterData with from_js_any(value : JsAny) -> CharacterData = "%identity"
///|
/// Unchecked downcast — no runtime type check is performed.
/// Prefer `try_into()` for checked downcasts.
#deprecated("Use unsafe_into or try_into instead")
pub fn[T : TCharacterData] CharacterData::into(self : CharacterData) -> T = "%identity"
///|
/// Unchecked downcast — no runtime type check is performed.
/// WARNING: If the underlying JS value is not of type T, this will silently
/// produce a value with incorrect type, leading to undefined behavior.
pub fn[T : TCharacterData] CharacterData::unsafe_into(
self : CharacterData,
) -> T = "%identity"
///|
pub impl HasConstructor for CharacterData with constructor_name() {
"CharacterData"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TCharacterData + HasConstructor] CharacterData::try_into(
self : CharacterData,
) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TCharacterData for CharacterData
///|
pub impl TNode for CharacterData
///|
pub impl TEventTarget for CharacterData
///|
pub(open) trait TCharacterDataBeforeNodes: TJsValue {}
///|
pub impl TCharacterDataBeforeNodes for Node
///|
pub impl TCharacterDataBeforeNodes for String
///|
pub(open) trait TCharacterDataAfterNodes: TJsValue {}
///|
pub impl TCharacterDataAfterNodes for Node
///|
pub impl TCharacterDataAfterNodes for String
///|
pub(open) trait TCharacterDataReplaceWithNodes: TJsValue {}
///|
pub impl TCharacterDataReplaceWithNodes for Node
///|
pub impl TCharacterDataReplaceWithNodes for String
///|
/// [CharacterData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData) interface.
pub trait TCharacterData: TNode {
data(self : Self) -> String = _
set_data(self : Self, data : String) -> Unit = _
length(self : Self) -> UInt = _
substring_data(self : Self, offset : UInt, count : UInt) -> String = _
append_data(self : Self, data : String) -> Unit = _
insert_data(self : Self, offset : UInt, data : String) -> Unit = _
delete_data(self : Self, offset : UInt, count : UInt) -> Unit = _
replace_data(self : Self, offset : UInt, count : UInt, data : String) -> Unit = _
previous_element_sibling(self : Self) -> Element = _
next_element_sibling(self : Self) -> Element = _
before(self : Self, nodes : Array[&TCharacterDataBeforeNodes]) -> Unit = _
after(self : Self, nodes : Array[&TCharacterDataAfterNodes]) -> Unit = _
replace_with(self : Self, nodes : Array[&TCharacterDataReplaceWithNodes]) -> Unit = _
remove(self : Self) -> Unit = _
}
///|
/// [CharacterData.data](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/data)
impl TCharacterData with data(self : Self) -> String {
character_data_data_ffi(TJsValue::to_js(self))
}
///|
/// [CharacterData.data](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/data)
impl TCharacterData with set_data(self : Self, data : String) -> Unit {
character_data_set_data_ffi(TJsValue::to_js(self), TJsValue::to_js(data))
}
///|
/// [CharacterData.length](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/length)
impl TCharacterData with length(self : Self) -> UInt {
character_data_length_ffi(TJsValue::to_js(self))
}
///|
/// [CharacterData.substringData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/substringData)
impl TCharacterData with substring_data(
self : Self,
offset : UInt,
count : UInt,
) -> String {
character_data_substring_data_ffi(
TJsValue::to_js(self),
TJsValue::to_js(offset),
TJsValue::to_js(count),
)
}
///|
/// [CharacterData.appendData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/appendData)
impl TCharacterData with append_data(self : Self, data : String) -> Unit {
character_data_append_data_ffi(TJsValue::to_js(self), TJsValue::to_js(data))
}
///|
/// [CharacterData.insertData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/insertData)
impl TCharacterData with insert_data(self : Self, offset : UInt, data : String) -> Unit {
character_data_insert_data_ffi(
TJsValue::to_js(self),
TJsValue::to_js(offset),
TJsValue::to_js(data),
)
}
///|
/// [CharacterData.deleteData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/deleteData)
impl TCharacterData with delete_data(self : Self, offset : UInt, count : UInt) -> Unit {
character_data_delete_data_ffi(
TJsValue::to_js(self),
TJsValue::to_js(offset),
TJsValue::to_js(count),
)
}
///|
/// [CharacterData.replaceData](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/replaceData)
impl TCharacterData with replace_data(
self : Self,
offset : UInt,
count : UInt,
data : String,
) -> Unit {
character_data_replace_data_ffi(
TJsValue::to_js(self),
TJsValue::to_js(offset),
TJsValue::to_js(count),
TJsValue::to_js(data),
)
}
///|
/// [CharacterData.previousElementSibling](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/previousElementSibling)
impl TCharacterData with previous_element_sibling(self : Self) -> Element {
character_data_previous_element_sibling_ffi(TJsValue::to_js(self))
}
///|
/// [CharacterData.nextElementSibling](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/nextElementSibling)
impl TCharacterData with next_element_sibling(self : Self) -> Element {
character_data_next_element_sibling_ffi(TJsValue::to_js(self))
}
///|
/// [CharacterData.before](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/before)
impl TCharacterData with before(
self : Self,
nodes : Array[&TCharacterDataBeforeNodes],
) -> Unit {
character_data_before_ffi(
TJsValue::to_js(self),
TJsValue::to_js(
nodes.map(fn(v : &TCharacterDataBeforeNodes) -> JsValue { v.to_js() }),
),
)
}
///|
/// [CharacterData.after](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/after)
impl TCharacterData with after(
self : Self,
nodes : Array[&TCharacterDataAfterNodes],
) -> Unit {
character_data_after_ffi(
TJsValue::to_js(self),
TJsValue::to_js(
nodes.map(fn(v : &TCharacterDataAfterNodes) -> JsValue { v.to_js() }),
),
)
}
///|
/// [CharacterData.replaceWith](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/replaceWith)
impl TCharacterData with replace_with(
self : Self,
nodes : Array[&TCharacterDataReplaceWithNodes],
) -> Unit {
character_data_replace_with_ffi(
TJsValue::to_js(self),
TJsValue::to_js(
nodes.map(fn(v : &TCharacterDataReplaceWithNodes) -> JsValue { v.to_js() }),
),
)
}
///|
/// [CharacterData.remove](https://developer.mozilla.org/en-US/docs/Web/API/CharacterData/remove)
impl TCharacterData with remove(self : Self) -> Unit {
character_data_remove_ffi(TJsValue::to_js(self))
}
///|
#cfg(target="js")
extern "js" fn character_data_data_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.data"
///|
#cfg(target="js")
fn character_data_data_ffi(obj : JsValue) -> String {
character_data_data_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn character_data_set_data_ffi(
obj : JsValue,
data : JsValue,
) -> Unit = "(obj, data) => { obj.data = data; }"
///|
#cfg(target="js")
extern "js" fn character_data_length_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.length"
///|
#cfg(target="js")
fn character_data_length_ffi(obj : JsValue) -> UInt {
character_data_length_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn character_data_substring_data_ffi_js(
obj : JsValue,
offset : JsValue,
count : JsValue,
) -> JsValue = "(obj, offset, count) => obj.substringData(offset, count)"
///|
#cfg(target="js")
fn character_data_substring_data_ffi(
obj : JsValue,
offset : JsValue,
count : JsValue,
) -> String {
character_data_substring_data_ffi_js(obj, offset, count).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn character_data_append_data_ffi(
obj : JsValue,
data : JsValue,
) -> Unit = "(obj, data) => obj.appendData(data)"
///|
#cfg(target="js")
extern "js" fn character_data_insert_data_ffi(
obj : JsValue,
offset : JsValue,
data : JsValue,
) -> Unit = "(obj, offset, data) => obj.insertData(offset, data)"
///|
#cfg(target="js")
extern "js" fn character_data_delete_data_ffi(
obj : JsValue,
offset : JsValue,
count : JsValue,
) -> Unit = "(obj, offset, count) => obj.deleteData(offset, count)"
///|
#cfg(target="js")
extern "js" fn character_data_replace_data_ffi(
obj : JsValue,
offset : JsValue,
count : JsValue,
data : JsValue,
) -> Unit = "(obj, offset, count, data) => obj.replaceData(offset, count, data)"
///|
#cfg(target="js")
extern "js" fn character_data_previous_element_sibling_ffi_js(
obj : JsValue,
) -> JsValue = "(obj) => obj.previousElementSibling"
///|
#cfg(target="js")
fn character_data_previous_element_sibling_ffi(obj : JsValue) -> Element {
character_data_previous_element_sibling_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn character_data_next_element_sibling_ffi_js(
obj : JsValue,
) -> JsValue = "(obj) => obj.nextElementSibling"
///|
#cfg(target="js")
fn character_data_next_element_sibling_ffi(obj : JsValue) -> Element {
character_data_next_element_sibling_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn character_data_before_ffi(
obj : JsValue,
nodes : JsValue,
) -> Unit = "(obj, nodes) => obj.before(...nodes)"
///|
#cfg(target="js")
extern "js" fn character_data_after_ffi(obj : JsValue, nodes : JsValue) -> Unit = "(obj, nodes) => obj.after(...nodes)"
///|
#cfg(target="js")
extern "js" fn character_data_replace_with_ffi(
obj : JsValue,
nodes : JsValue,
) -> Unit = "(obj, nodes) => obj.replaceWith(...nodes)"
///|
#cfg(target="js")
extern "js" fn character_data_remove_ffi(obj : JsValue) -> Unit = "(obj) => obj.remove()"
///|
#cfg(target="wasm-gc")
fn character_data_data_ffi_wasm(obj : JsValue) -> JsValue = "webapi_CharacterData" "get_data"
///|
#cfg(target="wasm-gc")
fn character_data_data_ffi(obj : JsValue) -> String {
jsvalue_to_string(character_data_data_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn character_data_set_data_ffi(obj : JsValue, data : JsValue) -> Unit = "webapi_CharacterData" "set_data"
///|
#cfg(target="wasm-gc")
fn character_data_length_ffi(obj : JsValue) -> UInt = "webapi_CharacterData" "get_length"
///|
#cfg(target="wasm-gc")
fn character_data_substring_data_ffi_wasm(
obj : JsValue,
offset : JsValue,
count : JsValue,
) -> JsValue = "webapi_CharacterData" "substringData"
///|
#cfg(target="wasm-gc")
fn character_data_substring_data_ffi(
obj : JsValue,
offset : JsValue,
count : JsValue,
) -> String {
jsvalue_to_string(character_data_substring_data_ffi_wasm(obj, offset, count))
}
///|
#cfg(target="wasm-gc")
fn character_data_append_data_ffi(obj : JsValue, data : JsValue) -> Unit = "webapi_CharacterData" "appendData"
///|
#cfg(target="wasm-gc")
fn character_data_insert_data_ffi(
obj : JsValue,
offset : JsValue,
data : JsValue,
) -> Unit = "webapi_CharacterData" "insertData"
///|
#cfg(target="wasm-gc")
fn character_data_delete_data_ffi(
obj : JsValue,
offset : JsValue,
count : JsValue,
) -> Unit = "webapi_CharacterData" "deleteData"
///|
#cfg(target="wasm-gc")
fn character_data_replace_data_ffi(
obj : JsValue,
offset : JsValue,
count : JsValue,
data : JsValue,
) -> Unit = "webapi_CharacterData" "replaceData"
///|
#cfg(target="wasm-gc")
fn character_data_previous_element_sibling_ffi(obj : JsValue) -> Element = "webapi_CharacterData" "get_previousElementSibling"
///|
#cfg(target="wasm-gc")
fn character_data_next_element_sibling_ffi(obj : JsValue) -> Element = "webapi_CharacterData" "get_nextElementSibling"
///|
#cfg(target="wasm-gc")
fn character_data_before_ffi(obj : JsValue, nodes : JsValue) -> Unit = "webapi_CharacterData" "before"
///|
#cfg(target="wasm-gc")
fn character_data_after_ffi(obj : JsValue, nodes : JsValue) -> Unit = "webapi_CharacterData" "after"
///|
#cfg(target="wasm-gc")
fn character_data_replace_with_ffi(obj : JsValue, nodes : JsValue) -> Unit = "webapi_CharacterData" "replaceWith"
///|
#cfg(target="wasm-gc")
fn character_data_remove_ffi(obj : JsValue) -> Unit = "webapi_CharacterData" "remove"