diff options
author | Valentin Popov <valentin@popov.link> | 2024-07-19 15:37:58 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2024-07-19 15:37:58 +0300 |
commit | a990de90fe41456a23e58bd087d2f107d321f3a1 (patch) | |
tree | 15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/tempfile/src/file/imp | |
parent | 3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff) | |
download | fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.tar.xz fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.zip |
Deleted vendor folder
Diffstat (limited to 'vendor/tempfile/src/file/imp')
-rw-r--r-- | vendor/tempfile/src/file/imp/mod.rs | 12 | ||||
-rw-r--r-- | vendor/tempfile/src/file/imp/other.rs | 30 | ||||
-rw-r--r-- | vendor/tempfile/src/file/imp/unix.rs | 149 | ||||
-rw-r--r-- | vendor/tempfile/src/file/imp/windows.rs | 104 |
4 files changed, 0 insertions, 295 deletions
diff --git a/vendor/tempfile/src/file/imp/mod.rs b/vendor/tempfile/src/file/imp/mod.rs deleted file mode 100644 index fbb2bbf..0000000 --- a/vendor/tempfile/src/file/imp/mod.rs +++ /dev/null @@ -1,12 +0,0 @@ -cfg_if::cfg_if! { - if #[cfg(any(unix, target_os = "redox", target_os = "wasi"))] { - mod unix; - pub use self::unix::*; - } else if #[cfg(windows)] { - mod windows; - pub use self::windows::*; - } else { - mod other; - pub use self::other::*; - } -} diff --git a/vendor/tempfile/src/file/imp/other.rs b/vendor/tempfile/src/file/imp/other.rs deleted file mode 100644 index 8721d2d..0000000 --- a/vendor/tempfile/src/file/imp/other.rs +++ /dev/null @@ -1,30 +0,0 @@ -use std::fs::{File, OpenOptions}; -use std::io; -use std::path::Path; - -fn not_supported<T>() -> io::Result<T> { - Err(io::Error::new( - io::ErrorKind::Other, - "operation not supported on this platform", - )) -} - -pub fn create_named(_path: &Path, _open_options: &mut OpenOptions) -> io::Result<File> { - not_supported() -} - -pub fn create(_dir: &Path) -> io::Result<File> { - not_supported() -} - -pub fn reopen(_file: &File, _path: &Path) -> io::Result<File> { - not_supported() -} - -pub fn persist(_old_path: &Path, _new_path: &Path, _overwrite: bool) -> io::Result<()> { - not_supported() -} - -pub fn keep(_path: &Path) -> io::Result<()> { - not_supported() -} diff --git a/vendor/tempfile/src/file/imp/unix.rs b/vendor/tempfile/src/file/imp/unix.rs deleted file mode 100644 index 79aba78..0000000 --- a/vendor/tempfile/src/file/imp/unix.rs +++ /dev/null @@ -1,149 +0,0 @@ -use std::env; -use std::ffi::OsStr; -use std::fs::{self, File, OpenOptions}; -use std::io; -cfg_if::cfg_if! { - if #[cfg(not(target_os = "wasi"))] { - use std::os::unix::fs::{MetadataExt, OpenOptionsExt}; - } else { - #[cfg(feature = "nightly")] - use std::os::wasi::fs::MetadataExt; - } -} -use crate::util; -use std::path::Path; - -#[cfg(not(target_os = "redox"))] -use { - rustix::fs::{rename, unlink}, - std::fs::hard_link, -}; - -pub fn create_named(path: &Path, open_options: &mut OpenOptions) -> io::Result<File> { - open_options.read(true).write(true).create_new(true); - - #[cfg(not(target_os = "wasi"))] - { - open_options.mode(0o600); - } - - open_options.open(path) -} - -fn create_unlinked(path: &Path) -> io::Result<File> { - let tmp; - // shadow this to decrease the lifetime. It can't live longer than `tmp`. - let mut path = path; - if !path.is_absolute() { - let cur_dir = env::current_dir()?; - tmp = cur_dir.join(path); - path = &tmp; - } - - let f = create_named(path, &mut OpenOptions::new())?; - // don't care whether the path has already been unlinked, - // but perhaps there are some IO error conditions we should send up? - let _ = fs::remove_file(path); - Ok(f) -} - -#[cfg(target_os = "linux")] -pub fn create(dir: &Path) -> io::Result<File> { - use rustix::{fs::OFlags, io::Errno}; - OpenOptions::new() - .read(true) - .write(true) - .custom_flags(OFlags::TMPFILE.bits() as i32) // do not mix with `create_new(true)` - .open(dir) - .or_else(|e| { - match Errno::from_io_error(&e) { - // These are the three "not supported" error codes for O_TMPFILE. - Some(Errno::OPNOTSUPP) | Some(Errno::ISDIR) | Some(Errno::NOENT) => { - create_unix(dir) - } - _ => Err(e), - } - }) -} - -#[cfg(not(target_os = "linux"))] -pub fn create(dir: &Path) -> io::Result<File> { - create_unix(dir) -} - -fn create_unix(dir: &Path) -> io::Result<File> { - util::create_helper( - dir, - OsStr::new(".tmp"), - OsStr::new(""), - crate::NUM_RAND_CHARS, - |path| create_unlinked(&path), - ) -} - -#[cfg(any(not(target_os = "wasi"), feature = "nightly"))] -pub fn reopen(file: &File, path: &Path) -> io::Result<File> { - let new_file = OpenOptions::new().read(true).write(true).open(path)?; - let old_meta = file.metadata()?; - let new_meta = new_file.metadata()?; - if old_meta.dev() != new_meta.dev() || old_meta.ino() != new_meta.ino() { - return Err(io::Error::new( - io::ErrorKind::NotFound, - "original tempfile has been replaced", - )); - } - Ok(new_file) -} - -#[cfg(all(target_os = "wasi", not(feature = "nightly")))] -pub fn reopen(_file: &File, _path: &Path) -> io::Result<File> { - return Err(io::Error::new( - io::ErrorKind::Other, - "this operation is supported on WASI only on nightly Rust (with `nightly` feature enabled)", - )); -} - -#[cfg(not(target_os = "redox"))] -pub fn persist(old_path: &Path, new_path: &Path, overwrite: bool) -> io::Result<()> { - if overwrite { - rename(old_path, new_path)?; - } else { - // On Linux, use `renameat_with` to avoid overwriting an existing name, - // if the kernel and the filesystem support it. - #[cfg(any(target_os = "android", target_os = "linux"))] - { - use rustix::fs::{renameat_with, RenameFlags, CWD}; - use rustix::io::Errno; - use std::sync::atomic::{AtomicBool, Ordering::Relaxed}; - - static NOSYS: AtomicBool = AtomicBool::new(false); - if !NOSYS.load(Relaxed) { - match renameat_with(CWD, old_path, CWD, new_path, RenameFlags::NOREPLACE) { - Ok(()) => return Ok(()), - Err(Errno::NOSYS) => NOSYS.store(true, Relaxed), - Err(Errno::INVAL) => {} - Err(e) => return Err(e.into()), - } - } - } - - // Otherwise use `hard_link` to create the new filesystem name, which - // will fail if the name already exists, and then `unlink` to remove - // the old name. - hard_link(old_path, new_path)?; - - // Ignore unlink errors. Can we do better? - let _ = unlink(old_path); - } - Ok(()) -} - -#[cfg(target_os = "redox")] -pub fn persist(_old_path: &Path, _new_path: &Path, _overwrite: bool) -> io::Result<()> { - // XXX implement when possible - Err(io::Error::from_raw_os_error(syscall::ENOSYS)) -} - -pub fn keep(_: &Path) -> io::Result<()> { - Ok(()) -} diff --git a/vendor/tempfile/src/file/imp/windows.rs b/vendor/tempfile/src/file/imp/windows.rs deleted file mode 100644 index 9df65f9..0000000 --- a/vendor/tempfile/src/file/imp/windows.rs +++ /dev/null @@ -1,104 +0,0 @@ -use std::ffi::OsStr; -use std::fs::{File, OpenOptions}; -use std::os::windows::ffi::OsStrExt; -use std::os::windows::fs::OpenOptionsExt; -use std::os::windows::io::{AsRawHandle, FromRawHandle, RawHandle}; -use std::path::Path; -use std::{io, iter}; - -use windows_sys::Win32::Foundation::{HANDLE, INVALID_HANDLE_VALUE}; -use windows_sys::Win32::Storage::FileSystem::{ - MoveFileExW, ReOpenFile, SetFileAttributesW, FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_TEMPORARY, - FILE_FLAG_DELETE_ON_CLOSE, FILE_GENERIC_READ, FILE_GENERIC_WRITE, FILE_SHARE_DELETE, - FILE_SHARE_READ, FILE_SHARE_WRITE, MOVEFILE_REPLACE_EXISTING, -}; - -use crate::util; - -fn to_utf16(s: &Path) -> Vec<u16> { - s.as_os_str().encode_wide().chain(iter::once(0)).collect() -} - -pub fn create_named(path: &Path, open_options: &mut OpenOptions) -> io::Result<File> { - open_options - .create_new(true) - .read(true) - .write(true) - .custom_flags(FILE_ATTRIBUTE_TEMPORARY) - .open(path) -} - -pub fn create(dir: &Path) -> io::Result<File> { - util::create_helper( - dir, - OsStr::new(".tmp"), - OsStr::new(""), - crate::NUM_RAND_CHARS, - |path| { - OpenOptions::new() - .create_new(true) - .read(true) - .write(true) - .share_mode(0) - .custom_flags(FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE) - .open(path) - }, - ) -} - -pub fn reopen(file: &File, _path: &Path) -> io::Result<File> { - let handle = file.as_raw_handle(); - unsafe { - let handle = ReOpenFile( - handle as HANDLE, - FILE_GENERIC_READ | FILE_GENERIC_WRITE, - FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, - 0, - ); - if handle == INVALID_HANDLE_VALUE { - Err(io::Error::last_os_error()) - } else { - Ok(FromRawHandle::from_raw_handle(handle as RawHandle)) - } - } -} - -pub fn keep(path: &Path) -> io::Result<()> { - unsafe { - let path_w = to_utf16(path); - if SetFileAttributesW(path_w.as_ptr(), FILE_ATTRIBUTE_NORMAL) == 0 { - Err(io::Error::last_os_error()) - } else { - Ok(()) - } - } -} - -pub fn persist(old_path: &Path, new_path: &Path, overwrite: bool) -> io::Result<()> { - unsafe { - let old_path_w = to_utf16(old_path); - let new_path_w = to_utf16(new_path); - - // Don't succeed if this fails. We don't want to claim to have successfully persisted a file - // still marked as temporary because this file won't have the same consistency guarantees. - if SetFileAttributesW(old_path_w.as_ptr(), FILE_ATTRIBUTE_NORMAL) == 0 { - return Err(io::Error::last_os_error()); - } - - let mut flags = 0; - - if overwrite { - flags |= MOVEFILE_REPLACE_EXISTING; - } - - if MoveFileExW(old_path_w.as_ptr(), new_path_w.as_ptr(), flags) == 0 { - let e = io::Error::last_os_error(); - // If this fails, the temporary file is now un-hidden and no longer marked temporary - // (slightly less efficient) but it will still work. - let _ = SetFileAttributesW(old_path_w.as_ptr(), FILE_ATTRIBUTE_TEMPORARY); - Err(e) - } else { - Ok(()) - } - } -} |