alloc — This feature pulls in
alloc and exposes it in all the usual
std::collection gets mapped to
alloc::collections and all
the allocation stuff is added to the prelude.
std — This feature pulls in the entire standard library and overrides all
other features. This effectively bypasses this crate completely. This is here
to avoid needing feature gates: Just forward your optional
std feature to
here, we handle the rest.
unstable — This feature also re-exports all unstable modules, which isn’t
possible to do unless you compile with nightly. Unless you need an unstable
module, this crate supports stable rust.
compat_hash — This pulls in
hashbrown (which is not
HashDoS-resistant!! but #![no_std]). The point is so you can keep using the
standard, safe, HashMap for those who have the standard library, and fall
back to a less ideal alternative for those who do not. Be advised, however,
that this used in a public function signature could be confusing and should
perhaps be avoided. But that is up to you!
compat_sync — This pulls in spin and
provides replacements for several things used in
compat_macros — This feature adds dummy
etc. implementations that do absolutely nothing. The point is that any debug
functions or other loggings that are not required for the library to
function, just stay silent in
compat_cstr — Enable CStr
compat_osraw — Enable std::os::raw
compat_path — Enable std::path
compat_guard_unwrap — .