Expand description
The Rust SGX SDK Standard Library
The Rust SGX standard library is the foundation of portable Rust SGX SDK,
a set of minimal and battle-tested shared abstractions for the Rust SGX
ecosystem. Similar to Rust’s libstd, it offers core types, like Vec<T> and
Option<T>, library-defined operations on language
primitives, standard macros, [I/O] and
[multithreading], among [many other things][other].
std is available to all Rust crates by default, just as if each one
contained an extern crate sgx_tstd as std; import at the [crate root]. Therefore the
standard library can be accessed in [use] statements through the path
std, as in [use std::env], or in expressions through the absolute path
::std, as in [::std::env::args].
Modules
- Memory allocation APIs.
- assert_matchesExperimentalUnstable module containing the unstable
assert_matchesmacro. - async_iterExperimentalComposable asynchronous iteration.
- intrinsicsExperimentalCompiler intrinsics.
- Utilities for dynamic typing or type reflection.
- Utilities for the array primitive type.
- A module for working with borrowed data.
- The
Box<T>type for heap allocation. - Shareable mutable containers.
- Utilities for the
charprimitive type. - The
Clonetrait for types that cannot be ‘implicitly copied’. - Utilities for comparing and ordering values.
- Collection types.
- Traits for conversions between types.
- The
Defaulttrait for types with a default value. - Inspection and manipulation of the process’s environment.
- Traits for working with Errors.
- Constants for the
f32single-precision floating point type. - Constants for the
f64double-precision floating point type. - Utilities related to FFI bindings.
- Utilities for formatting and printing
Strings. - Asynchronous basic functionality.
- Generic hashing support.
- Hints to compiler that affects how code should be emitted or optimized. Hints may be compile time or runtime.
- i8Deprecation plannedRedundant constants module for the
i8primitive type. - i16Deprecation plannedRedundant constants module for the
i16primitive type. - i32Deprecation plannedRedundant constants module for the
i32primitive type. - i64Deprecation plannedRedundant constants module for the
i64primitive type. - i128Deprecation plannedRedundant constants module for the
i128primitive type. - Traits, helpers, and type definitions for core I/O functionality.
- isizeDeprecation plannedRedundant constants module for the
isizeprimitive type. - Composable external iteration.
- Primitive traits and types representing basic properties of types.
- Basic functions for dealing with memory.
- Networking primitives for TCP/UDP communication.
- Additional functionality for numerics.
- Overloadable operators.
- Optional values.
- OS-specific functionality.
- Panic support in the standard library.
- Cross-platform path manipulation.
- Types that pin data to its location in memory.
- The Rust Prelude
- This module reexports the primitive types to allow usage that is not possibly shadowed by other declared types.
- Manually manage memory through raw pointers.
- Single-threaded reference-counting pointers. ‘Rc’ stands for ‘Reference Counted’.
- Error handling with the
Resulttype. - Runtime services
- Utilities for the slice primitive type.
- Utilities for the
strprimitive type. - A UTF-8–encoded, growable string.
- Useful synchronization primitives.
- Types and Traits for working with asynchronous tasks.
- Native threads.
- Temporal quantification.
- u8Deprecation plannedRedundant constants module for the
u8primitive type. - u16Deprecation plannedRedundant constants module for the
u16primitive type. - u32Deprecation plannedRedundant constants module for the
u32primitive type. - u64Deprecation plannedRedundant constants module for the
u64primitive type. - u128Deprecation plannedRedundant constants module for the
u128primitive type. - usizeDeprecation plannedRedundant constants module for the
usizeprimitive type. - A contiguous growable array type with heap-allocated contents, written
Vec<T>.
Macros
- concat_bytesExperimentalConcatenates literals into a byte slice.
- concat_identsExperimentalConcatenates identifiers into one identifier.
- const_format_argsExperimentalSame as
format_args, but can be used in some const contexts. - format_args_nlExperimentalSame as
format_args, but adds a newline in the end. - log_syntaxExperimentalPrints passed tokens into the standard output.
- trace_macrosExperimentalEnables or disables tracing functionality used for debugging other macros.
- Asserts that a boolean expression is
trueat runtime. - Asserts that two expressions are equal to each other (using
PartialEq). - Asserts that two expressions are not equal to each other (using
PartialEq). - Evaluates boolean combinations of configuration flags at compile-time.
- Expands to the column number at which it was invoked.
- Causes compilation to fail with the given error message when encountered.
- Concatenates literals into a static string slice.
- Prints and returns the value of a given expression for quick and dirty debugging.
- Asserts that a boolean expression is
trueat runtime. - Asserts that two expressions are equal to each other.
- Asserts that two expressions are not equal to each other.
- Inspects an environment variable at compile time.
- Prints to the standard error.
- Prints to the standard error, with a newline.
- Expands to the file name in which it was invoked.
- Creates a
Stringusing interpolation of runtime expressions. - Constructs parameters for the other string-formatting macros.
- Parses a file as an expression or an item according to the context.
- Includes a file as a reference to a byte array.
- Includes a UTF-8 encoded file as a string.
- Expands to the line number on which it was invoked.
- Returns whether the given expression matches any of the given patterns.
- Expands to a string that represents the current module path.
- Optionally inspects an environment variable at compile time.
- Prints to the standard output.
- Prints to the standard output, with a newline.
- Stringifies its arguments.
- Declare a new thread local storage key of type
std::thread::LocalKey. - Indicates unfinished code.
- tryDeprecatedUnwraps a result or propagates its error.
- Indicates unimplemented code by panicking with a message of “not implemented”.
- Indicates unreachable code.
- Creates a
Veccontaining the arguments. - Writes formatted data into a buffer.
- Write formatted data into a buffer, with a newline appended.