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_matches
macro. - 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
char
primitive type. - The
Clone
trait for types that cannot be ‘implicitly copied’. - Utilities for comparing and ordering values.
- Collection types.
- Traits for conversions between types.
- The
Default
trait for types with a default value. - Inspection and manipulation of the process’s environment.
- Traits for working with Errors.
- Constants for the
f32
single-precision floating point type. - Constants for the
f64
double-precision floating point type. - Utilities related to FFI bindings.
- Utilities for formatting and printing
String
s. - 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
i8
primitive type. - i16Deprecation plannedRedundant constants module for the
i16
primitive type. - i32Deprecation plannedRedundant constants module for the
i32
primitive type. - i64Deprecation plannedRedundant constants module for the
i64
primitive type. - i128Deprecation plannedRedundant constants module for the
i128
primitive type. - Traits, helpers, and type definitions for core I/O functionality.
- isizeDeprecation plannedRedundant constants module for the
isize
primitive 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
Result
type. - Runtime services
- Utilities for the slice primitive type.
- Utilities for the
str
primitive 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
u8
primitive type. - u16Deprecation plannedRedundant constants module for the
u16
primitive type. - u32Deprecation plannedRedundant constants module for the
u32
primitive type. - u64Deprecation plannedRedundant constants module for the
u64
primitive type. - u128Deprecation plannedRedundant constants module for the
u128
primitive type. - usizeDeprecation plannedRedundant constants module for the
usize
primitive 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
true
at 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
true
at 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
String
using 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
Vec
containing the arguments. - Writes formatted data into a buffer.
- Write formatted data into a buffer, with a newline appended.