// Do not edit. This file is generated.
// MoonBit type: FileSystemDirectoryHandle
// Specifications: fs.idl
///|
/// [FileSystemDirectoryHandle](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle)
#external
pub type FileSystemDirectoryHandle
///|
pub impl TJsValue for FileSystemDirectoryHandle with to_js(
self : FileSystemDirectoryHandle,
) -> JsValue = "%identity"
///|
pub impl FromJsAny for FileSystemDirectoryHandle with from_js_any(value : JsAny) -> FileSystemDirectoryHandle = "%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 : TFileSystemDirectoryHandle] FileSystemDirectoryHandle::into(
self : FileSystemDirectoryHandle,
) -> 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 : TFileSystemDirectoryHandle] FileSystemDirectoryHandle::unsafe_into(
self : FileSystemDirectoryHandle,
) -> T = "%identity"
///|
pub impl HasConstructor for FileSystemDirectoryHandle with constructor_name() {
"FileSystemDirectoryHandle"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TFileSystemDirectoryHandle + HasConstructor] FileSystemDirectoryHandle::try_into(
self : FileSystemDirectoryHandle,
) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TFileSystemDirectoryHandle for FileSystemDirectoryHandle
///|
pub impl TFileSystemHandle for FileSystemDirectoryHandle
///|
/// [FileSystemDirectoryHandle](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle) interface.
pub trait TFileSystemDirectoryHandle: TFileSystemHandle {
get_file_handle(
self : Self,
name : String,
options? : FileSystemGetFileOptions,
) -> JsPromise[FileSystemFileHandle] = _
get_directory_handle(
self : Self,
name : String,
options? : FileSystemGetDirectoryOptions,
) -> JsPromise[FileSystemDirectoryHandle] = _
remove_entry(self : Self, name : String, options? : FileSystemRemoveOptions) -> JsPromise[
JsValue,
] = _
resolve(self : Self, possible_descendant : &TFileSystemHandle) -> JsPromise[
Array[String],
] = _
}
///|
/// [FileSystemDirectoryHandle.getFileHandle](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/getFileHandle)
impl TFileSystemDirectoryHandle with get_file_handle(
self : Self,
name : String,
options? : FileSystemGetFileOptions,
) -> JsPromise[FileSystemFileHandle] {
file_system_directory_handle_get_file_handle_ffi(
TJsValue::to_js(self),
TJsValue::to_js(name),
opt_to_js(options),
)
}
///|
/// [FileSystemDirectoryHandle.getDirectoryHandle](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle)
impl TFileSystemDirectoryHandle with get_directory_handle(
self : Self,
name : String,
options? : FileSystemGetDirectoryOptions,
) -> JsPromise[FileSystemDirectoryHandle] {
file_system_directory_handle_get_directory_handle_ffi(
TJsValue::to_js(self),
TJsValue::to_js(name),
opt_to_js(options),
)
}
///|
/// [FileSystemDirectoryHandle.removeEntry](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/removeEntry)
impl TFileSystemDirectoryHandle with remove_entry(
self : Self,
name : String,
options? : FileSystemRemoveOptions,
) -> JsPromise[JsValue] {
file_system_directory_handle_remove_entry_ffi(
TJsValue::to_js(self),
TJsValue::to_js(name),
opt_to_js(options),
)
}
///|
/// [FileSystemDirectoryHandle.resolve](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/resolve)
impl TFileSystemDirectoryHandle with resolve(
self : Self,
possible_descendant : &TFileSystemHandle,
) -> JsPromise[Array[String]] {
file_system_directory_handle_resolve_ffi(
TJsValue::to_js(self),
TJsValue::to_js(possible_descendant),
)
}
///|
#cfg(target="js")
extern "js" fn file_system_directory_handle_get_file_handle_ffi_js(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsValue = "(obj, name, options) => obj.getFileHandle(name, options)"
///|
#cfg(target="js")
fn file_system_directory_handle_get_file_handle_ffi(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsPromise[FileSystemFileHandle] {
file_system_directory_handle_get_file_handle_ffi_js(obj, name, options).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn file_system_directory_handle_get_directory_handle_ffi_js(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsValue = "(obj, name, options) => obj.getDirectoryHandle(name, options)"
///|
#cfg(target="js")
fn file_system_directory_handle_get_directory_handle_ffi(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsPromise[FileSystemDirectoryHandle] {
file_system_directory_handle_get_directory_handle_ffi_js(obj, name, options).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn file_system_directory_handle_remove_entry_ffi_js(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsValue = "(obj, name, options) => obj.removeEntry(name, options)"
///|
#cfg(target="js")
fn file_system_directory_handle_remove_entry_ffi(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsPromise[JsValue] {
file_system_directory_handle_remove_entry_ffi_js(obj, name, options).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn file_system_directory_handle_resolve_ffi_js(
obj : JsValue,
possible_descendant : JsValue,
) -> JsValue = "(obj, possible_descendant) => obj.resolve(possible_descendant)"
///|
#cfg(target="js")
fn file_system_directory_handle_resolve_ffi(
obj : JsValue,
possible_descendant : JsValue,
) -> JsPromise[Array[String]] {
file_system_directory_handle_resolve_ffi_js(obj, possible_descendant).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_get_file_handle_ffi_wasm(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsValue = "webapi_FileSystemDirectoryHandle" "getFileHandle"
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_get_file_handle_ffi(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsPromise[FileSystemFileHandle] {
file_system_directory_handle_get_file_handle_ffi_wasm(obj, name, options).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_get_directory_handle_ffi_wasm(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsValue = "webapi_FileSystemDirectoryHandle" "getDirectoryHandle"
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_get_directory_handle_ffi(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsPromise[FileSystemDirectoryHandle] {
file_system_directory_handle_get_directory_handle_ffi_wasm(obj, name, options).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_remove_entry_ffi_wasm(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsValue = "webapi_FileSystemDirectoryHandle" "removeEntry"
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_remove_entry_ffi(
obj : JsValue,
name : JsValue,
options : JsValue,
) -> JsPromise[JsValue] {
file_system_directory_handle_remove_entry_ffi_wasm(obj, name, options).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_resolve_ffi_wasm(
obj : JsValue,
possible_descendant : JsValue,
) -> JsValue = "webapi_FileSystemDirectoryHandle" "resolve"
///|
#cfg(target="wasm-gc")
fn file_system_directory_handle_resolve_ffi(
obj : JsValue,
possible_descendant : JsValue,
) -> JsPromise[Array[String]] {
file_system_directory_handle_resolve_ffi_wasm(obj, possible_descendant).unsafe_cast()
}