| //! Filesystem operations. |
| |
| mod abs; |
| #[cfg(not(target_os = "redox"))] |
| mod at; |
| mod constants; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| mod copy_file_range; |
| #[cfg(not(target_os = "redox"))] |
| mod cwd; |
| #[cfg(not(target_os = "redox"))] |
| mod dir; |
| #[cfg(not(any( |
| target_os = "dragonfly", |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "solaris", |
| )))] |
| mod fadvise; |
| pub(crate) mod fcntl; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| mod fcntl_darwin; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| mod fcopyfile; |
| pub(crate) mod fd; |
| mod file_type; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| mod getpath; |
| #[cfg(not(any( |
| target_os = "dragonfly", |
| target_os = "freebsd", |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "solaris", |
| target_os = "wasi", |
| )))] |
| mod makedev; |
| #[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))] |
| mod memfd_create; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| mod openat2; |
| #[cfg(target_os = "linux")] |
| mod sendfile; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| mod statx; |
| |
| #[cfg(not(any( |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "netbsd", |
| target_os = "redox", |
| target_os = "solaris", |
| target_os = "wasi", |
| )))] |
| pub use abs::statfs; |
| #[cfg(not(any( |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "redox", |
| target_os = "solaris", |
| target_os = "wasi", |
| )))] |
| pub use abs::statvfs; |
| #[cfg(not(any(target_os = "illumos", target_os = "redox", target_os = "solaris")))] |
| pub use at::accessat; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| pub use at::fclonefileat; |
| #[cfg(not(any( |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "redox", |
| target_os = "wasi", |
| )))] |
| pub use at::mknodat; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| pub use at::renameat_with; |
| #[cfg(not(any(target_os = "redox", target_os = "wasi")))] |
| pub use at::{chmodat, chownat}; |
| #[cfg(not(target_os = "redox"))] |
| pub use at::{ |
| linkat, mkdirat, openat, readlinkat, renameat, statat, symlinkat, unlinkat, utimensat, RawMode, |
| UTIME_NOW, UTIME_OMIT, |
| }; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| pub use constants::CloneFlags; |
| /// `copyfile_flags_t` |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| pub use constants::CopyfileFlags; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| pub use constants::RenameFlags; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| pub use constants::ResolveFlags; |
| pub use constants::{Access, FdFlags, Mode, Nsecs, OFlags, Secs, Timespec}; |
| #[cfg(not(target_os = "redox"))] |
| pub use constants::{AtFlags, Dev}; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| pub use copy_file_range::copy_file_range; |
| #[cfg(not(target_os = "redox"))] |
| pub use cwd::cwd; |
| #[cfg(not(target_os = "redox"))] |
| pub use dir::{Dir, DirEntry}; |
| #[cfg(not(any( |
| target_os = "dragonfly", |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "solaris", |
| )))] |
| pub use fadvise::{fadvise, Advice}; |
| #[cfg(not(target_os = "wasi"))] |
| pub use fcntl::fcntl_dupfd_cloexec; |
| #[cfg(any( |
| target_os = "android", |
| target_os = "freebsd", |
| target_os = "fuchsia", |
| target_os = "linux", |
| ))] |
| pub use fcntl::{fcntl_add_seals, fcntl_get_seals, SealFlags}; |
| pub use fcntl::{fcntl_getfd, fcntl_getfl, fcntl_setfd, fcntl_setfl}; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| pub use fcntl_darwin::{fcntl_fullfsync, fcntl_rdadvise}; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| pub use fcopyfile::{ |
| copyfile_state_alloc, copyfile_state_free, copyfile_state_get, copyfile_state_get_copied, |
| copyfile_state_t, fcopyfile, |
| }; |
| #[cfg(not(any( |
| target_os = "dragonfly", |
| target_os = "haiku", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "redox", |
| )))] |
| pub use fd::fdatasync; |
| #[cfg(not(any( |
| target_os = "aix", |
| target_os = "dragonfly", |
| target_os = "illumos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "solaris", |
| )))] |
| pub use fd::{fallocate, FallocateFlags}; |
| #[cfg(not(target_os = "wasi"))] |
| pub use fd::{fchmod, fchown}; |
| #[cfg(not(any(target_os = "solaris", target_os = "wasi")))] |
| pub use fd::{flock, FlockOperation}; |
| pub use fd::{fstat, fsync, ftruncate, futimens, is_file_read_write, seek, tell, Stat, Timestamps}; |
| #[cfg(not(any( |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "netbsd", |
| target_os = "redox", |
| target_os = "solaris", |
| target_os = "wasi", |
| )))] |
| pub use fd::{fstatfs, StatFs}; |
| #[cfg(not(any( |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "redox", |
| target_os = "solaris", |
| target_os = "wasi", |
| )))] |
| pub use fd::{fstatvfs, StatVfs, StatVfsMountFlags}; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| pub use fd::{FsWord, NFS_SUPER_MAGIC, PROC_SUPER_MAGIC}; |
| pub use file_type::FileType; |
| #[cfg(any(target_os = "ios", target_os = "macos"))] |
| pub use getpath::getpath; |
| #[cfg(not(any( |
| target_os = "dragonfly", |
| target_os = "freebsd", |
| target_os = "haiku", |
| target_os = "illumos", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| target_os = "redox", |
| target_os = "solaris", |
| target_os = "wasi", |
| )))] |
| pub use makedev::{major, makedev, minor}; |
| #[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))] |
| pub use memfd_create::{memfd_create, MemfdFlags}; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| pub use openat2::openat2; |
| #[cfg(target_os = "linux")] |
| pub use sendfile::sendfile; |
| #[cfg(any(target_os = "android", target_os = "linux"))] |
| pub use statx::{statx, Statx, StatxFlags, StatxTimestamp}; |
| |
| /// Re-export types common to POSIX-ish platforms. |
| #[cfg(feature = "std")] |
| #[cfg(unix)] |
| pub use std::os::unix::fs::{DirEntryExt, FileExt, FileTypeExt, MetadataExt, OpenOptionsExt}; |
| #[cfg(feature = "std")] |
| #[cfg(target_os = "wasi")] |
| pub use std::os::wasi::fs::{DirEntryExt, FileExt, FileTypeExt, MetadataExt, OpenOptionsExt}; |