Sha256: f30ccd2cea4a850250db931e416762f1d9727ab2839969f3f55825c13eabfea0

Contents?: true

Size: 1.82 KB

Versions: 7

Compression:

Stored size: 1.82 KB

Contents

//! POSIX-style filesystem functions which operate on bare paths.

#[cfg(not(any(
    target_os = "haiku",
    target_os = "illumos",
    target_os = "netbsd",
    target_os = "redox",
    target_os = "solaris",
    target_os = "wasi",
)))]
use crate::fs::StatFs;
#[cfg(not(any(
    target_os = "haiku",
    target_os = "illumos",
    target_os = "redox",
    target_os = "solaris",
    target_os = "wasi",
)))]
use {
    crate::fs::StatVfs,
    crate::{backend, io, path},
};

/// `statfs`—Queries filesystem metadata.
///
/// Compared to [`statvfs`], this function often provides more information,
/// though it's less portable.
///
/// # References
///  - [Linux]
///
/// [Linux]: https://man7.org/linux/man-pages/man2/statfs.2.html
#[cfg(not(any(
    target_os = "haiku",
    target_os = "illumos",
    target_os = "netbsd",
    target_os = "redox",
    target_os = "solaris",
    target_os = "wasi",
)))]
#[inline]
pub fn statfs<P: path::Arg>(path: P) -> io::Result<StatFs> {
    path.into_with_c_str(backend::fs::syscalls::statfs)
}

/// `statvfs`—Queries filesystem metadata, POSIX version.
///
/// Compared to [`statfs`], this function often provides less information,
/// but it is more portable. But even so, filesystems are very diverse and not
/// all the fields are meaningful for every filesystem. And `f_fsid` doesn't
/// seem to have a clear meaning anywhere.
///
/// # References
///  - [POSIX]
///  - [Linux]
///
/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/statvfs.html
/// [Linux]: https://man7.org/linux/man-pages/man2/statvfs.2.html
#[cfg(not(any(
    target_os = "haiku",
    target_os = "illumos",
    target_os = "redox",
    target_os = "solaris",
    target_os = "wasi",
)))]
#[inline]
pub fn statvfs<P: path::Arg>(path: P) -> io::Result<StatVfs> {
    path.into_with_c_str(backend::fs::syscalls::statvfs)
}

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
wasmtime-8.0.0 ./ext/cargo-vendor/rustix-0.36.12/src/fs/abs.rs
wasmtime-7.0.0 ./ext/cargo-vendor/rustix-0.36.11/src/fs/abs.rs
wasmtime-6.0.1 ./ext/cargo-vendor/rustix-0.36.8/src/fs/abs.rs
wasmtime-6.0.0 ./ext/cargo-vendor/rustix-0.36.8/src/fs/abs.rs
wasmtime-5.0.0 ./ext/cargo-vendor/rustix-0.36.7/src/fs/abs.rs
wasmtime-0.4.1 ./ext/cargo-vendor/rustix-0.36.5/src/fs/abs.rs
wasmtime-0.4.0 ./ext/cargo-vendor/rustix-0.36.5/src/fs/abs.rs