From 928ce7f0a4ee0c5ca3edd7fe2611592ad36e5764 Mon Sep 17 00:00:00 2001 From: Meadow Liu Date: Sun, 8 Sep 2024 01:19:05 -0700 Subject: [PATCH] alloc, core, std, and a quite expansive prelude? --- Cargo.toml | 2 - src/lib.rs | 7 +++- src/prelude.rs | 102 ++++++++++++++++++++++++++++++++++++++++++++++ src/rust_alloc.rs | 4 ++ src/rust_core.rs | 4 ++ src/rust_std.rs | 4 ++ 6 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 src/rust_alloc.rs create mode 100644 src/rust_core.rs create mode 100644 src/rust_std.rs diff --git a/Cargo.toml b/Cargo.toml index 6391c8fe1..50890e4eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,8 +66,6 @@ wiwiwiwiwi = { path = "macro", version = "=0.10.0" } # zeroize = { version = "1.7.0", optional = true } [features] -alloc = [] -std = [] [build-dependencies] # cc = "1.1.6" diff --git a/src/lib.rs b/src/lib.rs index fb27378de..4d60fd6aa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,3 @@ -#![cfg_attr(not(feature = "std"), no_std)] #![no_implicit_prelude] // TODO: review these @@ -26,7 +25,11 @@ compile_error!("16-bit platforms are not supported yet (but please do file an is #[cfg(any(doc, docsrs, kiwingay))] #[doc = include_str!("../CHANGELOG.md")] pub mod _changelog {} -// pub mod prelude; +pub mod prelude; + +pub mod rust_alloc; +pub mod rust_core; +pub mod rust_std; // pub mod clone; // pub mod compare; diff --git a/src/prelude.rs b/src/prelude.rs index 6961ee20c..57efb4761 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -1 +1,103 @@ //! Prelude module, exporting commonly-used items + +use crate::rust_std; + +pub use rust_std::{ + assert, + assert_eq, + assert_ne, + debug_assert, + debug_assert_eq, + debug_assert_ne, + print, + println, + eprint, + eprintln, + cfg, + dbg, + unreachable, + concat, + compile_error, + file, + line, + column, + format, + format_args, + stringify +}; +pub use rust_std::borrow::{ + Cow, + ToOwned +}; +pub use rust_std::convert::{ + From, + Into, + TryFrom, + TryInto, + AsMut, + AsRef, + identity +}; +pub use rust_std::future::{ + Future, + IntoFuture +}; +pub use rust_std::iter::{ + Iterator, + FromIterator, + IntoIterator, + DoubleEndedIterator, + ExactSizeIterator, + Extend +}; +pub use rust_std::marker::{ + Send, + Sync, + Sized, + Unpin, + PhantomData, + PhantomPinned +}; +pub use rust_std::mem::{ + size_of, + size_of_val, + align_of, + align_of_val, + drop, + forget, + replace, + swap, + take, + transmute, + transmute_copy, + zeroed +}; +pub use rust_std::ops::{ + Drop, + Fn, + FnMut, + FnOnce +}; +pub use rust_std::option::{ + Option, + Option::Some, + Option::None +}; +pub use rust_std::result::{ + Result, + Result::Ok, + Result::Err +}; +pub use rust_std::string::{ + String, + ToString +}; +pub use rust_std::vec::Vec; + +#[macro_export] +macro_rules! panic { + ($($stuff:tt)*) => { + $crate::rust_std::panic!($($stuff)*) + } +} +pub use panic; diff --git a/src/rust_alloc.rs b/src/rust_alloc.rs new file mode 100644 index 000000000..c6321e571 --- /dev/null +++ b/src/rust_alloc.rs @@ -0,0 +1,4 @@ +extern crate alloc as _alloc; + +#[doc(inline)] +pub use _alloc::*; diff --git a/src/rust_core.rs b/src/rust_core.rs new file mode 100644 index 000000000..00b15472b --- /dev/null +++ b/src/rust_core.rs @@ -0,0 +1,4 @@ +extern crate core as _core; + +#[doc(inline)] +pub use _core::*; diff --git a/src/rust_std.rs b/src/rust_std.rs new file mode 100644 index 000000000..7c7881139 --- /dev/null +++ b/src/rust_std.rs @@ -0,0 +1,4 @@ +extern crate std as _std; + +#[doc(inline)] +pub use _std::*;