diff options
Diffstat (limited to 'runtime/ops/fs.rs')
-rw-r--r-- | runtime/ops/fs.rs | 163 |
1 files changed, 108 insertions, 55 deletions
diff --git a/runtime/ops/fs.rs b/runtime/ops/fs.rs index bc84cffb1..f7f0ad33c 100644 --- a/runtime/ops/fs.rs +++ b/runtime/ops/fs.rs @@ -8,8 +8,8 @@ use deno_core::error::bad_resource_id; use deno_core::error::custom_error; use deno_core::error::type_error; use deno_core::error::AnyError; -use deno_core::op_async; -use deno_core::op_sync; +use deno_core::op; + use deno_core::Extension; use deno_core::OpState; use deno_core::RcRef; @@ -38,59 +38,59 @@ use deno_core::error::not_supported; pub fn init() -> Extension { Extension::builder() .ops(vec![ - ("op_open_sync", op_sync(op_open_sync)), - ("op_open_async", op_async(op_open_async)), - ("op_seek_sync", op_sync(op_seek_sync)), - ("op_seek_async", op_async(op_seek_async)), - ("op_fdatasync_sync", op_sync(op_fdatasync_sync)), - ("op_fdatasync_async", op_async(op_fdatasync_async)), - ("op_fsync_sync", op_sync(op_fsync_sync)), - ("op_fsync_async", op_async(op_fsync_async)), - ("op_fstat_sync", op_sync(op_fstat_sync)), - ("op_fstat_async", op_async(op_fstat_async)), - ("op_flock_sync", op_sync(op_flock_sync)), - ("op_flock_async", op_async(op_flock_async)), - ("op_funlock_sync", op_sync(op_funlock_sync)), - ("op_funlock_async", op_async(op_funlock_async)), - ("op_umask", op_sync(op_umask)), - ("op_chdir", op_sync(op_chdir)), - ("op_mkdir_sync", op_sync(op_mkdir_sync)), - ("op_mkdir_async", op_async(op_mkdir_async)), - ("op_chmod_sync", op_sync(op_chmod_sync)), - ("op_chmod_async", op_async(op_chmod_async)), - ("op_chown_sync", op_sync(op_chown_sync)), - ("op_chown_async", op_async(op_chown_async)), - ("op_remove_sync", op_sync(op_remove_sync)), - ("op_remove_async", op_async(op_remove_async)), - ("op_copy_file_sync", op_sync(op_copy_file_sync)), - ("op_copy_file_async", op_async(op_copy_file_async)), - ("op_stat_sync", op_sync(op_stat_sync)), - ("op_stat_async", op_async(op_stat_async)), - ("op_realpath_sync", op_sync(op_realpath_sync)), - ("op_realpath_async", op_async(op_realpath_async)), - ("op_read_dir_sync", op_sync(op_read_dir_sync)), - ("op_read_dir_async", op_async(op_read_dir_async)), - ("op_rename_sync", op_sync(op_rename_sync)), - ("op_rename_async", op_async(op_rename_async)), - ("op_link_sync", op_sync(op_link_sync)), - ("op_link_async", op_async(op_link_async)), - ("op_symlink_sync", op_sync(op_symlink_sync)), - ("op_symlink_async", op_async(op_symlink_async)), - ("op_read_link_sync", op_sync(op_read_link_sync)), - ("op_read_link_async", op_async(op_read_link_async)), - ("op_ftruncate_sync", op_sync(op_ftruncate_sync)), - ("op_ftruncate_async", op_async(op_ftruncate_async)), - ("op_truncate_sync", op_sync(op_truncate_sync)), - ("op_truncate_async", op_async(op_truncate_async)), - ("op_make_temp_dir_sync", op_sync(op_make_temp_dir_sync)), - ("op_make_temp_dir_async", op_async(op_make_temp_dir_async)), - ("op_make_temp_file_sync", op_sync(op_make_temp_file_sync)), - ("op_make_temp_file_async", op_async(op_make_temp_file_async)), - ("op_cwd", op_sync(op_cwd)), - ("op_futime_sync", op_sync(op_futime_sync)), - ("op_futime_async", op_async(op_futime_async)), - ("op_utime_sync", op_sync(op_utime_sync)), - ("op_utime_async", op_async(op_utime_async)), + op_open_sync::decl(), + op_open_async::decl(), + op_seek_sync::decl(), + op_seek_async::decl(), + op_fdatasync_sync::decl(), + op_fdatasync_async::decl(), + op_fsync_sync::decl(), + op_fsync_async::decl(), + op_fstat_sync::decl(), + op_fstat_async::decl(), + op_flock_sync::decl(), + op_flock_async::decl(), + op_funlock_sync::decl(), + op_funlock_async::decl(), + op_umask::decl(), + op_chdir::decl(), + op_mkdir_sync::decl(), + op_mkdir_async::decl(), + op_chmod_sync::decl(), + op_chmod_async::decl(), + op_chown_sync::decl(), + op_chown_async::decl(), + op_remove_sync::decl(), + op_remove_async::decl(), + op_copy_file_sync::decl(), + op_copy_file_async::decl(), + op_stat_sync::decl(), + op_stat_async::decl(), + op_realpath_sync::decl(), + op_realpath_async::decl(), + op_read_dir_sync::decl(), + op_read_dir_async::decl(), + op_rename_sync::decl(), + op_rename_async::decl(), + op_link_sync::decl(), + op_link_async::decl(), + op_symlink_sync::decl(), + op_symlink_async::decl(), + op_read_link_sync::decl(), + op_read_link_async::decl(), + op_ftruncate_sync::decl(), + op_ftruncate_async::decl(), + op_truncate_sync::decl(), + op_truncate_async::decl(), + op_make_temp_dir_sync::decl(), + op_make_temp_dir_async::decl(), + op_make_temp_file_sync::decl(), + op_make_temp_file_async::decl(), + op_cwd::decl(), + op_futime_sync::decl(), + op_futime_async::decl(), + op_utime_sync::decl(), + op_utime_async::decl(), ]) .build() } @@ -157,6 +157,7 @@ fn open_helper( Ok((path, open_options)) } +#[op] fn op_open_sync( state: &mut OpState, args: OpenArgs, @@ -172,6 +173,7 @@ fn op_open_sync( Ok(rid) } +#[op] async fn op_open_async( state: Rc<RefCell<OpState>>, args: OpenArgs, @@ -214,6 +216,7 @@ fn seek_helper(args: SeekArgs) -> Result<(u32, SeekFrom), AnyError> { Ok((rid, seek_from)) } +#[op] fn op_seek_sync( state: &mut OpState, args: SeekArgs, @@ -229,6 +232,7 @@ fn op_seek_sync( Ok(pos) } +#[op] async fn op_seek_async( state: Rc<RefCell<OpState>>, args: SeekArgs, @@ -253,6 +257,7 @@ async fn op_seek_async( Ok(pos) } +#[op] fn op_fdatasync_sync( state: &mut OpState, rid: ResourceId, @@ -265,6 +270,7 @@ fn op_fdatasync_sync( Ok(()) } +#[op] async fn op_fdatasync_async( state: Rc<RefCell<OpState>>, rid: ResourceId, @@ -287,6 +293,7 @@ async fn op_fdatasync_async( Ok(()) } +#[op] fn op_fsync_sync( state: &mut OpState, rid: ResourceId, @@ -299,6 +306,7 @@ fn op_fsync_sync( Ok(()) } +#[op] async fn op_fsync_async( state: Rc<RefCell<OpState>>, rid: ResourceId, @@ -321,6 +329,7 @@ async fn op_fsync_async( Ok(()) } +#[op] fn op_fstat_sync( state: &mut OpState, rid: ResourceId, @@ -333,6 +342,7 @@ fn op_fstat_sync( Ok(get_stat(metadata)) } +#[op] async fn op_fstat_async( state: Rc<RefCell<OpState>>, rid: ResourceId, @@ -355,6 +365,7 @@ async fn op_fstat_async( Ok(get_stat(metadata)) } +#[op] fn op_flock_sync( state: &mut OpState, rid: ResourceId, @@ -376,6 +387,7 @@ fn op_flock_sync( }) } +#[op] async fn op_flock_async( state: Rc<RefCell<OpState>>, rid: ResourceId, @@ -416,6 +428,7 @@ async fn op_flock_async( .await? } +#[op] fn op_funlock_sync( state: &mut OpState, rid: ResourceId, @@ -433,6 +446,7 @@ fn op_funlock_sync( }) } +#[op] async fn op_funlock_async( state: Rc<RefCell<OpState>>, rid: ResourceId, @@ -469,6 +483,7 @@ async fn op_funlock_async( .await? } +#[op] fn op_umask( state: &mut OpState, mask: Option<u32>, @@ -501,6 +516,7 @@ fn op_umask( } } +#[op] fn op_chdir( state: &mut OpState, directory: String, @@ -522,6 +538,7 @@ pub struct MkdirArgs { mode: Option<u32>, } +#[op] fn op_mkdir_sync( state: &mut OpState, args: MkdirArgs, @@ -544,6 +561,7 @@ fn op_mkdir_sync( Ok(()) } +#[op] async fn op_mkdir_async( state: Rc<RefCell<OpState>>, args: MkdirArgs, @@ -582,6 +600,7 @@ pub struct ChmodArgs { mode: u32, } +#[op] fn op_chmod_sync( state: &mut OpState, args: ChmodArgs, @@ -611,6 +630,7 @@ fn op_chmod_sync( } } +#[op] async fn op_chmod_async( state: Rc<RefCell<OpState>>, args: ChmodArgs, @@ -656,6 +676,7 @@ pub struct ChownArgs { gid: Option<u32>, } +#[op] fn op_chown_sync( state: &mut OpState, args: ChownArgs, @@ -690,6 +711,7 @@ fn op_chown_sync( } } +#[op] async fn op_chown_async( state: Rc<RefCell<OpState>>, args: ChownArgs, @@ -738,6 +760,7 @@ pub struct RemoveArgs { recursive: bool, } +#[op] fn op_remove_sync( state: &mut OpState, args: RemoveArgs, @@ -783,6 +806,7 @@ fn op_remove_sync( Ok(()) } +#[op] async fn op_remove_async( state: Rc<RefCell<OpState>>, args: RemoveArgs, @@ -841,6 +865,7 @@ pub struct CopyFileArgs { to: String, } +#[op] fn op_copy_file_sync( state: &mut OpState, args: CopyFileArgs, @@ -879,6 +904,7 @@ fn op_copy_file_sync( Ok(()) } +#[op] async fn op_copy_file_async( state: Rc<RefCell<OpState>>, args: CopyFileArgs, @@ -1007,6 +1033,7 @@ pub struct StatArgs { lstat: bool, } +#[op] fn op_stat_sync( state: &mut OpState, args: StatArgs, @@ -1027,6 +1054,7 @@ fn op_stat_sync( Ok(get_stat(metadata)) } +#[op] async fn op_stat_async( state: Rc<RefCell<OpState>>, args: StatArgs, @@ -1056,6 +1084,7 @@ async fn op_stat_async( .unwrap() } +#[op] fn op_realpath_sync( state: &mut OpState, path: String, @@ -1077,6 +1106,7 @@ fn op_realpath_sync( Ok(realpath_str) } +#[op] async fn op_realpath_async( state: Rc<RefCell<OpState>>, path: String, @@ -1114,6 +1144,7 @@ pub struct DirEntry { is_symlink: bool, } +#[op] fn op_read_dir_sync( state: &mut OpState, path: String, @@ -1154,6 +1185,7 @@ fn op_read_dir_sync( Ok(entries) } +#[op] async fn op_read_dir_async( state: Rc<RefCell<OpState>>, path: String, @@ -1206,6 +1238,7 @@ pub struct RenameArgs { newpath: String, } +#[op] fn op_rename_sync( state: &mut OpState, args: RenameArgs, @@ -1234,6 +1267,7 @@ fn op_rename_sync( Ok(()) } +#[op] async fn op_rename_async( state: Rc<RefCell<OpState>>, args: RenameArgs, @@ -1279,6 +1313,7 @@ pub struct LinkArgs { newpath: String, } +#[op] fn op_link_sync( state: &mut OpState, args: LinkArgs, @@ -1309,6 +1344,7 @@ fn op_link_sync( Ok(()) } +#[op] async fn op_link_async( state: Rc<RefCell<OpState>>, args: LinkArgs, @@ -1362,6 +1398,7 @@ pub struct SymlinkOptions { _type: String, } +#[op] fn op_symlink_sync( state: &mut OpState, args: SymlinkArgs, @@ -1423,6 +1460,7 @@ fn op_symlink_sync( } } +#[op] async fn op_symlink_async( state: Rc<RefCell<OpState>>, args: SymlinkArgs, @@ -1487,6 +1525,7 @@ async fn op_symlink_async( .unwrap() } +#[op] fn op_read_link_sync( state: &mut OpState, path: String, @@ -1510,6 +1549,7 @@ fn op_read_link_sync( Ok(targetstr) } +#[op] async fn op_read_link_async( state: Rc<RefCell<OpState>>, path: String, @@ -1545,6 +1585,7 @@ pub struct FtruncateArgs { len: i32, } +#[op] fn op_ftruncate_sync( state: &mut OpState, args: FtruncateArgs, @@ -1559,6 +1600,7 @@ fn op_ftruncate_sync( Ok(()) } +#[op] async fn op_ftruncate_async( state: Rc<RefCell<OpState>>, args: FtruncateArgs, @@ -1591,6 +1633,7 @@ pub struct TruncateArgs { len: u64, } +#[op] fn op_truncate_sync( state: &mut OpState, args: TruncateArgs, @@ -1616,6 +1659,7 @@ fn op_truncate_sync( Ok(()) } +#[op] async fn op_truncate_async( state: Rc<RefCell<OpState>>, args: TruncateArgs, @@ -1699,6 +1743,7 @@ pub struct MakeTempArgs { suffix: Option<String>, } +#[op] fn op_make_temp_dir_sync( state: &mut OpState, args: MakeTempArgs, @@ -1728,6 +1773,7 @@ fn op_make_temp_dir_sync( Ok(path_str) } +#[op] async fn op_make_temp_dir_async( state: Rc<RefCell<OpState>>, args: MakeTempArgs, @@ -1762,6 +1808,7 @@ async fn op_make_temp_dir_async( .unwrap() } +#[op] fn op_make_temp_file_sync( state: &mut OpState, args: MakeTempArgs, @@ -1791,6 +1838,7 @@ fn op_make_temp_file_sync( Ok(path_str) } +#[op] async fn op_make_temp_file_async( state: Rc<RefCell<OpState>>, args: MakeTempArgs, @@ -1833,6 +1881,7 @@ pub struct FutimeArgs { mtime: (i64, u32), } +#[op] fn op_futime_sync( state: &mut OpState, args: FutimeArgs, @@ -1856,6 +1905,7 @@ fn op_futime_sync( Ok(()) } +#[op] async fn op_futime_async( state: Rc<RefCell<OpState>>, args: FutimeArgs, @@ -1904,6 +1954,7 @@ pub struct UtimeArgs { mtime: (i64, u32), } +#[op] fn op_utime_sync( state: &mut OpState, args: UtimeArgs, @@ -1922,6 +1973,7 @@ fn op_utime_sync( Ok(()) } +#[op] async fn op_utime_async( state: Rc<RefCell<OpState>>, args: UtimeArgs, @@ -1949,6 +2001,7 @@ async fn op_utime_async( .unwrap() } +#[op] fn op_cwd(state: &mut OpState, _: (), _: ()) -> Result<String, AnyError> { let path = current_dir()?; state |