* Auto-generate shims for old `wasi_unstable` module This commit is effectively just doing what #707 already did, but applying it to the `snapshot_0` module as well. The end result is the same, where we cut down on all the boilerplate in `snapshot_0` and bring it in line with the main `wasi_snapshot_preview1` implementation. The goal here is to make it easier to change the two in tandem since they're both doing the same thing. * Migrate `wasi_common::hostcalls` to a macro This commit migrates the `hostcalls` module to being auto-generated by a macro rather than duplicating a handwritten signature for each wasi syscall. * Auto-generate snapshot_0's `hostcalls` module Similar to the previous commit, but for `snapshot_0` * Delete the `wasi-common-cbindgen` crate This is no longer needed with the hostcalls macro now, we can easily fold the definition of the cbindgen macro into the same crate. * Rustfmt * Fix windows build errors * Rustfmt * Remove now no-longer-necessary code * rustfmt
51 lines
1.4 KiB
Rust
51 lines
1.4 KiB
Rust
//! A very experimental module modeled providing a high-level and safe
|
|
//! filesystem interface, modeled after `std::fs`, implemented on top of
|
|
//! WASI functions.
|
|
//!
|
|
//! Most functions in this API are not yet implemented!
|
|
//!
|
|
//! This corresponds to [`std::fs`].
|
|
//!
|
|
//! Instead of [`std::fs`'s free functions] which operate on paths, this
|
|
//! crate has methods on [`Dir`] which operate on paths which must be
|
|
//! relative to and within the directory.
|
|
//!
|
|
//! Since all functions which expose raw file descriptors are `unsafe`,
|
|
//! I/O handles in this API are unforgeable (unsafe code notwithstanding).
|
|
//! This combined with WASI's lack of absolute paths provides a natural
|
|
//! capability-oriented interface.
|
|
//!
|
|
//! [`std::fs`]: https://doc.rust-lang.org/std/fs/index.html
|
|
//! [`std::fs`'s free functions]: https://doc.rust-lang.org/std/fs/index.html#functions
|
|
//! [`DIR`]: struct.Dir.html
|
|
|
|
// TODO: When more things are implemented, remove these.
|
|
#![allow(
|
|
unused_imports,
|
|
unreachable_code,
|
|
unused_variables,
|
|
unused_mut,
|
|
unused_unsafe,
|
|
dead_code
|
|
)]
|
|
|
|
mod dir;
|
|
mod dir_builder;
|
|
mod dir_entry;
|
|
mod file;
|
|
mod file_type;
|
|
mod metadata;
|
|
mod open_options;
|
|
mod permissions;
|
|
mod readdir;
|
|
|
|
pub use dir::*;
|
|
pub use dir_builder::*;
|
|
pub use dir_entry::*;
|
|
pub use file::*;
|
|
pub use file_type::*;
|
|
pub use metadata::*;
|
|
pub use open_options::*;
|
|
pub use permissions::*;
|
|
pub use readdir::*;
|