use crate::fs::{manually, FollowSymlinks, ImplMetadataExt, Metadata}; use rustix::fs::{statat, AtFlags}; use std::path::Path; use std::{fs, io}; pub(crate) fn stat_impl( start: &fs::File, path: &Path, follow: FollowSymlinks, ) -> io::Result { if !super::beneath_supported() { return manually::stat(start, path, follow); } let flags = AtFlags::RESOLVE_BENEATH | if follow == FollowSymlinks::Yes { AtFlags::empty() } else { AtFlags::SYMLINK_NOFOLLOW }; Ok(ImplMetadataExt::from_rustix(statat(start, path, flags)?)) }