artichoke_load_path/
lib.rs

1#![warn(clippy::all)]
2#![warn(clippy::pedantic)]
3#![warn(clippy::cargo)]
4#![allow(unknown_lints)]
5#![allow(clippy::manual_let_else)]
6#![warn(missing_docs)]
7#![warn(missing_debug_implementations)]
8#![warn(missing_copy_implementations)]
9#![warn(rust_2018_idioms)]
10#![warn(rust_2021_compatibility)]
11#![warn(trivial_casts, trivial_numeric_casts)]
12#![warn(unused_qualifications)]
13#![warn(variant_size_differences)]
14#![forbid(unsafe_code)]
15// Enable feature callouts in generated documentation:
16// https://doc.rust-lang.org/beta/unstable-book/language-features/doc-cfg.html
17//
18// This approach is borrowed from tokio.
19#![cfg_attr(docsrs, feature(doc_cfg))]
20#![cfg_attr(docsrs, feature(doc_alias))]
21
22//! Virtual file system.
23//!
24//! Artichoke proxies all file system access through a virtual file system. The
25//! file system can store Ruby sources and extension hooks in memory and will
26//! support proxying to the host file system for reads and writes.
27//!
28//! Artichoke uses the virtual file system to track metadata about loaded
29//! features.
30//!
31//! Artichoke has several virtual file system implementations. Only some of them
32//! support reading from the system file system.
33
34#[cfg(feature = "rubylib-native-file-system-loader")]
35pub mod rubylib;
36
37#[doc(inline)]
38#[cfg(feature = "rubylib-native-file-system-loader")]
39pub use rubylib::Rubylib;