pub struct FileSystemSandboxPolicy {
pub kind: FileSystemSandboxKind,
pub glob_scan_max_depth: Option<usize>,
pub entries: Vec<FileSystemSandboxEntry>,
}Fields§
§kind: FileSystemSandboxKind§glob_scan_max_depth: Option<usize>§entries: Vec<FileSystemSandboxEntry>Implementations§
Source§impl FileSystemSandboxPolicy
impl FileSystemSandboxPolicy
pub fn read_only() -> Self
pub fn unrestricted() -> Self
pub fn external_sandbox() -> Self
pub fn restricted(entries: Vec<FileSystemSandboxEntry>) -> Self
Sourcepub fn remove_skip_missing_path_entries(&mut self)
pub fn remove_skip_missing_path_entries(&mut self)
Removes entries that should be skipped when their paths are missing.
Callers that materialize filesystem ACL targets should not turn these entries into newly-created sentinel paths.
pub fn has_explicit_non_write_entry_for_path_with_cwd( &self, path: &Path, cwd: &Path, ) -> bool
pub fn has_denied_read_restrictions(&self) -> bool
pub fn from_legacy_sandbox_policy_preserving_deny_entries( sandbox_policy: &SandboxPolicy, cwd: &Path, existing: &Self, ) -> Self
Sourcepub fn preserve_deny_read_restrictions_from(&mut self, existing: &Self)
pub fn preserve_deny_read_restrictions_from(&mut self, existing: &Self)
Preserve explicit read-deny rules from existing when a caller
replaces the allow side of a policy.
Sourcepub fn workspace_write(
writable_roots: &[AbsolutePathBuf],
exclude_tmpdir_env_var: bool,
exclude_slash_tmp: bool,
) -> Self
pub fn workspace_write( writable_roots: &[AbsolutePathBuf], exclude_tmpdir_env_var: bool, exclude_slash_tmp: bool, ) -> Self
Filesystem policy matching WorkspaceWrite semantics without requiring
callers to construct a legacy SandboxPolicy first.
Sourcepub fn from_legacy_sandbox_policy_for_cwd(
sandbox_policy: &SandboxPolicy,
cwd: &Path,
) -> Self
pub fn from_legacy_sandbox_policy_for_cwd( sandbox_policy: &SandboxPolicy, cwd: &Path, ) -> Self
Converts a legacy sandbox policy into an equivalent filesystem policy after resolving cwd-sensitive legacy defaults for the provided cwd.
Legacy WorkspaceWrite policies may list readable roots that live
under an already-writable root. Those paths were redundant in the
legacy model and should not become read-only carveouts when projected
into split filesystem policy.
Sourcepub fn has_full_disk_read_access(&self) -> bool
pub fn has_full_disk_read_access(&self) -> bool
Returns true when filesystem reads are unrestricted.
Sourcepub fn has_full_disk_write_access(&self) -> bool
pub fn has_full_disk_write_access(&self) -> bool
Returns true when filesystem writes are unrestricted.
Sourcepub fn include_platform_defaults(&self) -> bool
pub fn include_platform_defaults(&self) -> bool
Returns true when platform-default readable roots should be included.
pub fn resolve_access_with_cwd( &self, path: &Path, cwd: &Path, ) -> FileSystemAccessMode
pub fn can_read_path_with_cwd(&self, path: &Path, cwd: &Path) -> bool
pub fn can_write_path_with_cwd(&self, path: &Path, cwd: &Path) -> bool
Sourcepub fn materialize_project_roots_with_cwd(self, cwd: &Path) -> Self
pub fn materialize_project_roots_with_cwd(self, cwd: &Path) -> Self
Replaces symbolic :workspace_roots entries with absolute paths resolved
against cwd.
Use this when a durable permission profile must survive a cwd-only update without rebinding its project-root authority to the new cwd.
Sourcepub fn materialize_project_roots_with_workspace_roots(
self,
workspace_roots: &[AbsolutePathBuf],
) -> Self
pub fn materialize_project_roots_with_workspace_roots( self, workspace_roots: &[AbsolutePathBuf], ) -> Self
Replaces symbolic :workspace_roots entries with concrete entries for
each workspace root.
Sourcepub fn with_materialized_project_roots_for_workspace_roots(
self,
workspace_roots: &[AbsolutePathBuf],
) -> Self
pub fn with_materialized_project_roots_for_workspace_roots( self, workspace_roots: &[AbsolutePathBuf], ) -> Self
Preserves symbolic :workspace_roots entries while also adding concrete
entries for each provided workspace root.
pub fn with_additional_readable_roots( self, cwd: &Path, additional_readable_roots: &[AbsolutePathBuf], ) -> Self
pub fn with_additional_writable_roots( self, cwd: &Path, additional_writable_roots: &[AbsolutePathBuf], ) -> Self
Sourcepub fn with_additional_legacy_workspace_writable_roots(
self,
additional_writable_roots: &[AbsolutePathBuf],
) -> Self
pub fn with_additional_legacy_workspace_writable_roots( self, additional_writable_roots: &[AbsolutePathBuf], ) -> Self
Add roots using legacy WorkspaceWrite behavior.
Unlike Self::with_additional_writable_roots, this mirrors legacy
writable-roots semantics by adding exact roots even when they are
already writable through :workspace_roots, and by adding the default
read-only protected subpaths for each new root.
pub fn needs_direct_runtime_enforcement( &self, network_policy: NetworkSandboxPolicy, cwd: &Path, ) -> bool
Sourcepub fn is_semantically_equivalent_to(&self, other: &Self, cwd: &Path) -> bool
pub fn is_semantically_equivalent_to(&self, other: &Self, cwd: &Path) -> bool
Returns true when two policies resolve to the same filesystem access
model for cwd, ignoring incidental entry ordering.
Sourcepub fn get_readable_roots_with_cwd(&self, cwd: &Path) -> Vec<AbsolutePathBuf>
pub fn get_readable_roots_with_cwd(&self, cwd: &Path) -> Vec<AbsolutePathBuf>
Returns the explicit readable roots resolved against the provided cwd.
Sourcepub fn get_writable_roots_with_cwd(&self, cwd: &Path) -> Vec<WritableRoot>
pub fn get_writable_roots_with_cwd(&self, cwd: &Path) -> Vec<WritableRoot>
Returns the writable roots together with read-only carveouts resolved against the provided cwd.
Sourcepub fn get_unreadable_roots_with_cwd(&self, cwd: &Path) -> Vec<AbsolutePathBuf>
pub fn get_unreadable_roots_with_cwd(&self, cwd: &Path) -> Vec<AbsolutePathBuf>
Returns explicit unreadable roots resolved against the provided cwd.
Sourcepub fn get_unreadable_globs_with_cwd(&self, cwd: &Path) -> Vec<String>
pub fn get_unreadable_globs_with_cwd(&self, cwd: &Path) -> Vec<String>
Returns unreadable glob patterns resolved against the provided cwd.
pub fn to_legacy_sandbox_policy( &self, network_policy: NetworkSandboxPolicy, cwd: &Path, ) -> Result<SandboxPolicy>
Trait Implementations§
Source§impl Clone for FileSystemSandboxPolicy
impl Clone for FileSystemSandboxPolicy
Source§fn clone(&self) -> FileSystemSandboxPolicy
fn clone(&self) -> FileSystemSandboxPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FileSystemSandboxPolicy
impl Debug for FileSystemSandboxPolicy
Source§impl Default for FileSystemSandboxPolicy
impl Default for FileSystemSandboxPolicy
Source§impl<'de> Deserialize<'de> for FileSystemSandboxPolicy
impl<'de> Deserialize<'de> for FileSystemSandboxPolicy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for FileSystemSandboxPolicy
Source§impl From<&FileSystemPermissions> for FileSystemSandboxPolicy
impl From<&FileSystemPermissions> for FileSystemSandboxPolicy
Source§fn from(value: &FileSystemPermissions) -> Self
fn from(value: &FileSystemPermissions) -> Self
Source§impl From<&FileSystemSandboxPolicy> for FileSystemPermissions
impl From<&FileSystemSandboxPolicy> for FileSystemPermissions
Source§fn from(value: &FileSystemSandboxPolicy) -> Self
fn from(value: &FileSystemSandboxPolicy) -> Self
Source§impl From<&SandboxPolicy> for FileSystemSandboxPolicy
impl From<&SandboxPolicy> for FileSystemSandboxPolicy
Source§fn from(value: &SandboxPolicy) -> Self
fn from(value: &SandboxPolicy) -> Self
Source§impl FromStr for FileSystemSandboxPolicy
impl FromStr for FileSystemSandboxPolicy
Source§impl JsonSchema for FileSystemSandboxPolicy
impl JsonSchema for FileSystemSandboxPolicy
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl PartialEq for FileSystemSandboxPolicy
impl PartialEq for FileSystemSandboxPolicy
Source§impl Serialize for FileSystemSandboxPolicy
impl Serialize for FileSystemSandboxPolicy
impl StructuralPartialEq for FileSystemSandboxPolicy
Source§impl TS for FileSystemSandboxPolicy
impl TS for FileSystemSandboxPolicy
Source§type WithoutGenerics = FileSystemSandboxPolicy
type WithoutGenerics = FileSystemSandboxPolicy
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or ().
The only requirement for these dummy types is that EXPORT_TO must be None. Read moreSource§type OptionInnerType = FileSystemSandboxPolicy
type OptionInnerType = FileSystemSandboxPolicy
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn decl_concrete() -> String
fn decl_concrete() -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl() -> String
fn decl() -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline() -> String
fn inline() -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened() -> String
fn inline_flattened() -> String
This function will panic if the type cannot be flattened.
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported.The returned path does not include the base directory from
TS_RS_EXPORT_DIR. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn dependencies() -> Vec<Dependency>where
Self: 'static,
fn dependencies() -> Vec<Dependency>where
Self: 'static,
Source§fn export() -> Result<(), ExportError>where
Self: 'static,
fn export() -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all() -> Result<(), ExportError>where
Self: 'static,
fn export_all() -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export. Read moreSource§fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export. Read moreSource§fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
Auto Trait Implementations§
impl Freeze for FileSystemSandboxPolicy
impl RefUnwindSafe for FileSystemSandboxPolicy
impl Send for FileSystemSandboxPolicy
impl Sync for FileSystemSandboxPolicy
impl Unpin for FileSystemSandboxPolicy
impl UnsafeUnpin for FileSystemSandboxPolicy
impl UnwindSafe for FileSystemSandboxPolicy
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more