summaryrefslogtreecommitdiff
path: root/ext/ffi/lib.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-09-16 21:39:37 +0100
committerGitHub <noreply@github.com>2024-09-16 21:39:37 +0100
commit62e952559f600e72d7498c9b12f906cb0b1ba150 (patch)
tree6dbcce6592973358ef4bf6341888b0bbbdb98cc5 /ext/ffi/lib.rs
parente0b9c745c15720914f14996bf357d5b375e2dbd8 (diff)
refactor(permissions): split up Descriptor into Allow, Deny, and Query (#25508)
This makes the permission system more versatile.
Diffstat (limited to 'ext/ffi/lib.rs')
-rw-r--r--ext/ffi/lib.rs23
1 files changed, 19 insertions, 4 deletions
diff --git a/ext/ffi/lib.rs b/ext/ffi/lib.rs
index 59d241c5a..77ec3c85e 100644
--- a/ext/ffi/lib.rs
+++ b/ext/ffi/lib.rs
@@ -5,7 +5,7 @@ use deno_core::error::AnyError;
use std::mem::size_of;
use std::os::raw::c_char;
use std::os::raw::c_short;
-use std::path::Path;
+use std::path::PathBuf;
mod call;
mod callback;
@@ -41,13 +41,28 @@ const _: () = {
pub const UNSTABLE_FEATURE_NAME: &str = "ffi";
pub trait FfiPermissions {
- fn check_partial(&mut self, path: Option<&Path>) -> Result<(), AnyError>;
+ fn check_partial_no_path(&mut self) -> Result<(), AnyError>;
+ #[must_use = "the resolved return value to mitigate time-of-check to time-of-use issues"]
+ fn check_partial_with_path(
+ &mut self,
+ path: &str,
+ ) -> Result<PathBuf, AnyError>;
}
impl FfiPermissions for deno_permissions::PermissionsContainer {
#[inline(always)]
- fn check_partial(&mut self, path: Option<&Path>) -> Result<(), AnyError> {
- deno_permissions::PermissionsContainer::check_ffi_partial(self, path)
+ fn check_partial_no_path(&mut self) -> Result<(), AnyError> {
+ deno_permissions::PermissionsContainer::check_ffi_partial_no_path(self)
+ }
+
+ #[inline(always)]
+ fn check_partial_with_path(
+ &mut self,
+ path: &str,
+ ) -> Result<PathBuf, AnyError> {
+ deno_permissions::PermissionsContainer::check_ffi_partial_with_path(
+ self, path,
+ )
}
}