Sha256: 45dc01afdc6aa1c9ff0297d0fc2e853f84b32dd5ad0527e7ddc09836cb7043ac
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
use crate::fs::{FollowSymlinks, Metadata}; use std::path::Path; use std::{fs, io}; use { crate::fs::{open_unchecked, OpenOptions}, std::os::windows::fs::OpenOptionsExt, windows_sys::Win32::Storage::FileSystem::{ FILE_FLAG_BACKUP_SEMANTICS, FILE_FLAG_OPEN_REPARSE_POINT, }, }; /// *Unsandboxed* function similar to `stat`, but which does not perform /// sandboxing. pub(crate) fn stat_unchecked( start: &fs::File, path: &Path, follow: FollowSymlinks, ) -> io::Result<Metadata> { // Attempt to open the file to get the metadata that way, as that gives // us all the info. let mut opts = OpenOptions::new(); // Explicitly request no access, because we're just querying metadata. opts.access_mode(0); match follow { FollowSymlinks::Yes => { opts.custom_flags(FILE_FLAG_BACKUP_SEMANTICS); opts.follow(FollowSymlinks::Yes); } FollowSymlinks::No => { opts.custom_flags(FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS); opts.follow(FollowSymlinks::No); } } let file = open_unchecked(start, path, &opts)?; Metadata::from_file(&file) }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wasmtime-7.0.0 | ./ext/cargo-vendor/cap-primitives-1.0.9/src/windows/fs/stat_unchecked.rs |