所以我猜想我需要找到fs_imp ::文件是什么。事实证明,此FS_IMP来自这里,该fs :: fs :: file:file:
use crate::sys::fs as fs_imp;
.
toflow crate :: sys带我到/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/mod.rs
这一点我很想,因为这只是一个看起来像这样的文件:
#![allow(unsafe_op_in_unsafe_fn)]
/// The PAL (platform abstraction layer) contains platform-specific abstractions
/// for implementing the features in the other submodules, e.g. UNIX file
/// descriptors.
mod pal;
mod personality;
pub mod backtrace;
pub mod cmath;
pub mod exit_guard;
pub mod os_str;
pub mod path;
pub mod sync;
pub mod thread_local;
// FIXME(117276): remove this, move feature implementations into individual
// submodules.
pub use pal::*;
那么,我如何了解Rust Files的Linux版本在引擎盖中的工作方式?
您只是继续关注进口。
colould将
fs
带入范围的唯一一件事是通配符重新删除the the the,它导致您到达ivent,根据平台的不同,另一个模块被重新卸下:
pub use pal::*;
如果我们遵循的话,例如,通往通往
sys/pal/mod.rs
模块的定义,它包含cfg_if::cfg_if! {
if #[cfg(unix)] {
mod unix;
pub use self::unix::*;
}
// …
:的定义。
unix
当然,如果您有例如sys/pal/unix/mod.rs
或类似的设置,则可以“获取定义”,直到您到达目标,这使所有手动搜索变得更加容易。