summaryrefslogtreecommitdiff
path: root/ext/fs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-07-25 19:08:14 -0400
committerGitHub <noreply@github.com>2024-07-25 19:08:14 -0400
commit3bf147fe287ac779b20d318daba56b336f356adf (patch)
tree3b5bfe2a1ad918b275a2cd08f7dcc05f90a180ab /ext/fs
parent0cf7f268a7df7711ac6ab8c2c67b4d7abf454fcd (diff)
refactor: decouple node resolution from deno_core (#24724)
Diffstat (limited to 'ext/fs')
-rw-r--r--ext/fs/clippy.toml38
-rw-r--r--ext/fs/sync.rs62
2 files changed, 19 insertions, 81 deletions
diff --git a/ext/fs/clippy.toml b/ext/fs/clippy.toml
index 023769214..943d28c6d 100644
--- a/ext/fs/clippy.toml
+++ b/ext/fs/clippy.toml
@@ -1,24 +1,24 @@
disallowed-methods = [
{ path = "std::env::current_dir", reason = "File system operations should be done using FileSystem trait" },
- { path = "std::path::Path::canonicalize", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::is_dir", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::is_file", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::is_symlink", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::metadata", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::read_dir", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::read_link", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::symlink_metadata", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::Path::try_exists", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::exists", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::canonicalize", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::is_dir", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::is_file", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::is_symlink", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::metadata", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::read_dir", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::read_link", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::symlink_metadata", reason = "File system operations should be done using NodeFs trait" },
- { path = "std::path::PathBuf::try_exists", reason = "File system operations should be done using NodeFs trait" },
+ { path = "std::path::Path::canonicalize", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::is_dir", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::is_file", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::is_symlink", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::metadata", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::read_dir", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::read_link", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::symlink_metadata", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::Path::try_exists", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::exists", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::canonicalize", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::is_dir", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::is_file", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::is_symlink", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::metadata", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::read_dir", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::read_link", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::symlink_metadata", reason = "File system operations should be done using FileSystem trait" },
+ { path = "std::path::PathBuf::try_exists", reason = "File system operations should be done using FileSystem trait" },
{ path = "std::env::set_current_dir", reason = "File system operations should be done using FileSystem trait" },
{ path = "std::env::temp_dir", reason = "File system operations should be done using FileSystem trait" },
{ path = "std::fs::canonicalize", reason = "File system operations should be done using FileSystem trait" },
diff --git a/ext/fs/sync.rs b/ext/fs/sync.rs
index 83f1f8bc3..6a913f658 100644
--- a/ext/fs/sync.rs
+++ b/ext/fs/sync.rs
@@ -6,80 +6,18 @@ pub use inner::*;
mod inner {
#![allow(clippy::disallowed_types)]
- use std::ops::Deref;
- use std::ops::DerefMut;
pub use std::sync::Arc as MaybeArc;
pub use core::marker::Send as MaybeSend;
pub use core::marker::Sync as MaybeSync;
-
- pub struct MaybeArcMutexGuard<'lock, T>(std::sync::MutexGuard<'lock, T>);
-
- impl<'lock, T> Deref for MaybeArcMutexGuard<'lock, T> {
- type Target = std::sync::MutexGuard<'lock, T>;
- fn deref(&self) -> &std::sync::MutexGuard<'lock, T> {
- &self.0
- }
- }
-
- impl<'lock, T> DerefMut for MaybeArcMutexGuard<'lock, T> {
- fn deref_mut(&mut self) -> &mut std::sync::MutexGuard<'lock, T> {
- &mut self.0
- }
- }
-
- #[derive(Debug)]
- pub struct MaybeArcMutex<T>(std::sync::Arc<std::sync::Mutex<T>>);
- impl<T> MaybeArcMutex<T> {
- pub fn new(val: T) -> Self {
- Self(std::sync::Arc::new(std::sync::Mutex::new(val)))
- }
- }
-
- impl<'lock, T> MaybeArcMutex<T> {
- pub fn lock(&'lock self) -> MaybeArcMutexGuard<'lock, T> {
- MaybeArcMutexGuard(self.0.lock().unwrap())
- }
- }
}
#[cfg(not(feature = "sync_fs"))]
mod inner {
- use std::ops::Deref;
- use std::ops::DerefMut;
pub use std::rc::Rc as MaybeArc;
pub trait MaybeSync {}
impl<T> MaybeSync for T where T: ?Sized {}
pub trait MaybeSend {}
impl<T> MaybeSend for T where T: ?Sized {}
-
- pub struct MaybeArcMutexGuard<'lock, T>(std::cell::RefMut<'lock, T>);
-
- impl<'lock, T> Deref for MaybeArcMutexGuard<'lock, T> {
- type Target = std::cell::RefMut<'lock, T>;
- fn deref(&self) -> &std::cell::RefMut<'lock, T> {
- &self.0
- }
- }
-
- impl<'lock, T> DerefMut for MaybeArcMutexGuard<'lock, T> {
- fn deref_mut(&mut self) -> &mut std::cell::RefMut<'lock, T> {
- &mut self.0
- }
- }
-
- #[derive(Debug)]
- pub struct MaybeArcMutex<T>(std::rc::Rc<std::cell::RefCell<T>>);
- impl<T> MaybeArcMutex<T> {
- pub fn new(val: T) -> Self {
- Self(std::rc::Rc::new(std::cell::RefCell::new(val)))
- }
- }
-
- impl<'lock, T> MaybeArcMutex<T> {
- pub fn lock(&'lock self) -> MaybeArcMutexGuard<'lock, T> {
- MaybeArcMutexGuard(self.0.borrow_mut())
- }
- }
}