Crate std_shims

Crate std_shims 

Source
Expand description

§std shims

std-shims is a Rust crate with two purposes:

  • Expand the functionality of core and alloc
  • Polyfill functionality only available on newer version of Rust

The goal is to make supporting no-std environments, and older versions of Rust, as simple as possible. For most use cases, replacing std:: with std_shims:: and adding use std_shims::prelude::* is sufficient to take full advantage of std-shims.

§API Surface

std-shims only aims to have items mutually available between alloc (with extra dependencies) and std publicly exposed. Items exclusive to std, with no shims available, will not be exported by std-shims.

§Dependencies

HashSet and HashMap are provided via hashbrown. Synchronization primitives are provided via spin (avoiding a requirement on critical-section). Sections of std::io are independently matched as possible. rustversion is used to detect when to provide polyfills.

§Disclaimer

No guarantee of one-to-one parity is provided. The shims provided aim to be sufficient for the average case. Pull requests are welcome.

Modules§

allocstd
Memory allocation APIs.
borrowstd
A module for working with borrowed data.
boxedstd
The Box<T> type for heap allocation.
collections
errorstd
Interfaces for working with Errors.
ffistd
Utilities related to FFI bindings.
fmtstd
Utilities for formatting and printing Strings.
io
prelude
rcstd
Single-threaded reference-counting pointers. ‘Rc’ stands for ‘Reference Counted’.
slicestd
Utilities for the slice primitive type.
strstd
Utilities for the str primitive type.
stringstd
A UTF-8–encoded, growable string.
sync
taskstd
Types and Traits for working with asynchronous tasks.
vecstd
A contiguous growable array type with heap-allocated contents, written Vec<T>.

Macros§

formatstd
Creates a String using interpolation of runtime expressions.
vecstd
Creates a Vec containing the arguments.