// Do not edit. This file is generated.
// MoonBit type: IDBKeyRange
// Specifications: IndexedDB.idl
///|
/// [IDBKeyRange](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange)
#external
pub type IDBKeyRange
///|
pub impl TJsValue for IDBKeyRange with to_js(self : IDBKeyRange) -> JsValue = "%identity"
///|
pub impl FromJsAny for IDBKeyRange with from_js_any(value : JsAny) -> IDBKeyRange = "%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 : TIDBKeyRange] IDBKeyRange::into(self : IDBKeyRange) -> 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 : TIDBKeyRange] IDBKeyRange::unsafe_into(self : IDBKeyRange) -> T = "%identity"
///|
pub impl HasConstructor for IDBKeyRange with constructor_name() {
"IDBKeyRange"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TIDBKeyRange + HasConstructor] IDBKeyRange::try_into(
self : IDBKeyRange,
) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TIDBKeyRange for IDBKeyRange
///|
/// [IDBKeyRange](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange) interface.
pub trait TIDBKeyRange: TJsValue {
lower(self : Self) -> JsValue = _
upper(self : Self) -> JsValue = _
lower_open(self : Self) -> Bool = _
upper_open(self : Self) -> Bool = _
includes(self : Self, key : JsValue) -> Bool = _
}
///|
/// [IDBKeyRange.lower](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/lower)
impl TIDBKeyRange with lower(self : Self) -> JsValue {
idb_key_range_lower_ffi(TJsValue::to_js(self))
}
///|
/// [IDBKeyRange.upper](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/upper)
impl TIDBKeyRange with upper(self : Self) -> JsValue {
idb_key_range_upper_ffi(TJsValue::to_js(self))
}
///|
/// [IDBKeyRange.lowerOpen](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/lowerOpen)
impl TIDBKeyRange with lower_open(self : Self) -> Bool {
idb_key_range_lower_open_ffi(TJsValue::to_js(self))
}
///|
/// [IDBKeyRange.upperOpen](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/upperOpen)
impl TIDBKeyRange with upper_open(self : Self) -> Bool {
idb_key_range_upper_open_ffi(TJsValue::to_js(self))
}
///|
/// [IDBKeyRange.only](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/only)
pub fn IDBKeyRange::only(value : JsValue) -> IDBKeyRange {
idb_key_range_only_ffi(TJsValue::to_js(value))
}
///|
/// [IDBKeyRange.lowerBound](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/lowerBound)
pub fn IDBKeyRange::lower_bound(lower : JsValue, open? : Bool) -> IDBKeyRange {
idb_key_range_lower_bound_ffi(TJsValue::to_js(lower), opt_to_js(open))
}
///|
/// [IDBKeyRange.upperBound](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/upperBound)
pub fn IDBKeyRange::upper_bound(upper : JsValue, open? : Bool) -> IDBKeyRange {
idb_key_range_upper_bound_ffi(TJsValue::to_js(upper), opt_to_js(open))
}
///|
/// [IDBKeyRange.bound](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/bound)
pub fn IDBKeyRange::bound(
lower : JsValue,
upper : JsValue,
lower_open? : Bool,
upper_open? : Bool,
) -> IDBKeyRange {
idb_key_range_bound_ffi(
TJsValue::to_js(lower),
TJsValue::to_js(upper),
opt_to_js(lower_open),
opt_to_js(upper_open),
)
}
///|
/// [IDBKeyRange.includes](https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange/includes)
impl TIDBKeyRange with includes(self : Self, key : JsValue) -> Bool {
idb_key_range_includes_ffi(TJsValue::to_js(self), TJsValue::to_js(key))
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_lower_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.lower"
///|
#cfg(target="js")
fn idb_key_range_lower_ffi(obj : JsValue) -> JsValue {
idb_key_range_lower_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_upper_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.upper"
///|
#cfg(target="js")
fn idb_key_range_upper_ffi(obj : JsValue) -> JsValue {
idb_key_range_upper_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_lower_open_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.lowerOpen"
///|
#cfg(target="js")
fn idb_key_range_lower_open_ffi(obj : JsValue) -> Bool {
idb_key_range_lower_open_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_upper_open_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.upperOpen"
///|
#cfg(target="js")
fn idb_key_range_upper_open_ffi(obj : JsValue) -> Bool {
idb_key_range_upper_open_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_only_ffi_js(value : JsValue) -> JsValue = "(value) => IDBKeyRange.only(value)"
///|
#cfg(target="js")
fn idb_key_range_only_ffi(value : JsValue) -> IDBKeyRange {
idb_key_range_only_ffi_js(value).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_lower_bound_ffi_js(
lower : JsValue,
open : JsValue,
) -> JsValue = "(lower, open) => IDBKeyRange.lowerBound(lower, open)"
///|
#cfg(target="js")
fn idb_key_range_lower_bound_ffi(
lower : JsValue,
open : JsValue,
) -> IDBKeyRange {
idb_key_range_lower_bound_ffi_js(lower, open).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_upper_bound_ffi_js(
upper : JsValue,
open : JsValue,
) -> JsValue = "(upper, open) => IDBKeyRange.upperBound(upper, open)"
///|
#cfg(target="js")
fn idb_key_range_upper_bound_ffi(
upper : JsValue,
open : JsValue,
) -> IDBKeyRange {
idb_key_range_upper_bound_ffi_js(upper, open).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_bound_ffi_js(
lower : JsValue,
upper : JsValue,
lower_open : JsValue,
upper_open : JsValue,
) -> JsValue = "(lower, upper, lower_open, upper_open) => IDBKeyRange.bound(lower, upper, lower_open, upper_open)"
///|
#cfg(target="js")
fn idb_key_range_bound_ffi(
lower : JsValue,
upper : JsValue,
lower_open : JsValue,
upper_open : JsValue,
) -> IDBKeyRange {
idb_key_range_bound_ffi_js(lower, upper, lower_open, upper_open).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn idb_key_range_includes_ffi_js(
obj : JsValue,
key : JsValue,
) -> JsValue = "(obj, key) => obj.includes(key)"
///|
#cfg(target="js")
fn idb_key_range_includes_ffi(obj : JsValue, key : JsValue) -> Bool {
idb_key_range_includes_ffi_js(obj, key).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn idb_key_range_lower_ffi(obj : JsValue) -> JsValue = "webapi_IDBKeyRange" "get_lower"
///|
#cfg(target="wasm-gc")
fn idb_key_range_upper_ffi(obj : JsValue) -> JsValue = "webapi_IDBKeyRange" "get_upper"
///|
#cfg(target="wasm-gc")
fn idb_key_range_lower_open_ffi(obj : JsValue) -> Bool = "webapi_IDBKeyRange" "get_lowerOpen"
///|
#cfg(target="wasm-gc")
fn idb_key_range_upper_open_ffi(obj : JsValue) -> Bool = "webapi_IDBKeyRange" "get_upperOpen"
///|
#cfg(target="wasm-gc")
fn idb_key_range_only_ffi(value : JsValue) -> IDBKeyRange = "webapi_IDBKeyRange" "only"
///|
#cfg(target="wasm-gc")
fn idb_key_range_lower_bound_ffi(
lower : JsValue,
open : JsValue,
) -> IDBKeyRange = "webapi_IDBKeyRange" "lowerBound"
///|
#cfg(target="wasm-gc")
fn idb_key_range_upper_bound_ffi(
upper : JsValue,
open : JsValue,
) -> IDBKeyRange = "webapi_IDBKeyRange" "upperBound"
///|
#cfg(target="wasm-gc")
fn idb_key_range_bound_ffi(
lower : JsValue,
upper : JsValue,
lower_open : JsValue,
upper_open : JsValue,
) -> IDBKeyRange = "webapi_IDBKeyRange" "bound"
///|
#cfg(target="wasm-gc")
fn idb_key_range_includes_ffi(obj : JsValue, key : JsValue) -> Bool = "webapi_IDBKeyRange" "includes"