aboutsummaryrefslogtreecommitdiff
path: root/vendor/tempfile/src/file/imp
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
committerValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
commita990de90fe41456a23e58bd087d2f107d321f3a1 (patch)
tree15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/tempfile/src/file/imp
parent3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff)
downloadfparkan-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.rs12
-rw-r--r--vendor/tempfile/src/file/imp/other.rs30
-rw-r--r--vendor/tempfile/src/file/imp/unix.rs149
-rw-r--r--vendor/tempfile/src/file/imp/windows.rs104
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(())
- }
- }
-}