1use crate::{class::fs::Dirent, interface::AsyncIterator};
2use js_sys::{Function, JsString, Object, Promise};
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen(module = "fs")]
6extern {
7 #[wasm_bindgen(extends = Object, extends = AsyncIterator)]
8 #[derive(Clone, Debug)]
9 pub type Dir;
10
11 #[wasm_bindgen(method)]
18 pub fn close(this: &Dir, callback: Option<&Function>) -> Promise;
19
20 #[wasm_bindgen(method, js_name = "closeSync")]
21 pub fn close_sync(this: &Dir);
22
23 #[wasm_bindgen(method)]
24 pub fn read(this: &Dir) -> Promise;
25
26 #[wasm_bindgen(method, js_name = "readSync")]
27 pub fn read_sync(this: &Dir) -> Dirent;
28
29 #[wasm_bindgen(method, getter)]
34 pub fn path(this: &Dir) -> JsString;
35}