Crate core1.6.0[−][src]
Expand description
Rust 核心库
Rust 核心库是 Rust 标准库 的无依赖 1 基础。 它是语言和标准库库之间的可移植粘合剂,它定义了所有 Rust 代码的内在和原始构建块。
它没有链接到上游库,没有系统库,也没有 libc。
核心库是 最小的: 它甚至不知道堆分配,也不提供并发或 I/O。 这些东西都需要平台集成,而核心库是与平台无关的。
如何使用核心库
请注意,所有这些细节目前都被认为是不稳定的。
这个库建立在一些现有符号的假设之上:
-
memcpy
,memcmp
,memset
- 这些是核心内存例程,通常由 LLVM 生成。 此外,这个库可以显式地调用这些函数。 它们的签名与 C 中的签名相同。 这些函数通常由系统 libc 提供,但也可以由 编译器内置 crate 提供。 -
rust_begin_panic
- 这个函数需要四个参数,一个fmt::Arguments
,一个&'static str
和两个u32'。 这四个参数指示 panic 消息,调用 panic 的文件以及文件中的行和列。 定义此 panic 函数由该核心库的使用者决定; 它只要求返回 never。 这需要一个名为
panic_impl的
lang` 属性。 -
rust_eh_personality
- 由编译器的故障机制使用。 这通常映射到 GCC 的 personality 函数,但是可以确保不会触发 panic 的 crate 永远不会调用此函数。lang
属性称为eh_personality
。
严格来说,有一些符号是必需的,但是 它们并不总是必需的。 ↩
Modules
assert_matches | Experimental Unstable 模块包含不稳定的 |
intrinsics | Experimental 编译器内联函数。 |
lazy | Experimental 惰性值和静态数据的一次性初始化。 |
panicking | Experimental Panic 对 libcore 的支持 |
stream | Experimental 可组合的异步迭代。 |
unicode | Experimental |
alloc | 内存分配 API |
any | 该模块实现了 |
arch | SIMD 和供应商内部功能模块。 |
array | 固定长度数组的辅助函数和类型。 |
ascii | 对 ASCII 字符串和字符的操作。 |
borrow | 用于处理借用数据的模块。 |
cell | 可共享的可变容器。 |
char | 一个字符类型。 |
clone | 不能隐式复制的类型的 |
cmp | 排序和比较的功能。 |
convert | Traits 用于类型之间的转换。 |
default |
|
f32 |
|
f64 |
|
ffi | 与外部函数接口 (FFI) 绑定有关的实用工具。 |
fmt | 用于格式化和打印字符串的实用工具。 |
future | 异步值。 |
hash | 通用哈希支持。 |
hint | 对编译器的提示,该提示会影响应如何发出或优化代码。 提示可能是编译时或运行时。 |
i8 | Deprecation planned 8 位带符号整数类型的常量。 |
i16 | Deprecation planned 16 位带符号整数类型的常量。 |
i32 | Deprecation planned 32 位带符号整数类型的常量。 |
i64 | Deprecation planned 64 位有符号整数类型的常量。 |
i128 | Deprecation planned 128 位有符号整数类型的常量。 |
isize | Deprecation planned 指针大小的有符号整数类型的常量。 |
iter | 可组合的外部迭代。 |
marker | 原始 traits 和类型表示类型的基本属性。 |
mem | 处理内存的基本函数。 |
num | 内置数字类型的数字 traits 和函数。 |
ops | 可重载的运算符。 |
option | 可选值。 |
panic | 标准库中的 Panic 支持。 |
pin | 键入将数据固定到其在内存中的位置的类型。 |
prelude | libcore prelude |
primitive | 此模块重导出基本类型,以允许其他声明的类型不可能掩盖的用法。 |
ptr | 通过裸指针手动管理内存。 |
result |
|
slice | 切片管理和操作。 |
str | 字符串操作。 |
sync | 同步原语 |
task | 类型和 Traits 用于处理异步任务。 |
time | 时间量化。 |
u8 | Deprecation planned 8 位无符号整数类型的常量。 |
u16 | Deprecation planned 16 位无符号整数类型的常量。 |
u32 | Deprecation planned 32 位无符号整数类型的常量。 |
u64 | Deprecation planned 64 位无符号整数类型的常量。 |
u128 | Deprecation planned 128 位无符号整数类型的常量。 |
usize | Deprecation planned 指针大小的无符号整数类型的常量。 |
Macros
concat_idents | Experimental 将标识符串联为一个标识符。 |
format_args_nl | Experimental 与 |
llvm_asm | Experimental LLVM 样式的内联汇编。 |
log_syntax | Experimental 将传递的 tokens 打印到标准输出中。 |
trace_macros | Experimental 启用或禁用用于调试其他宏的跟踪功能。 |
assert | 声明在运行时布尔表达式为 |
assert_eq | 断言两个表达式彼此相等 (使用 |
assert_ne | 断言两个表达式彼此不相等 (使用 |
cfg | 在编译时评估配置标志的布尔组合。 |
column | 扩展到调用它的列号。 |
compile_error | 导致编译失败,并遇到给定的错误消息。 |
concat | 将字面量串联成一个静态字符串切片。 |
debug_assert | 声明在运行时布尔表达式为 |
debug_assert_eq | 断言两个表达式彼此相等。 |
debug_assert_ne | 断言两个表达式彼此不相等。 |
env | 在编译时检查环境变量。 |
file | 扩展为调用该文件的文件名。 |
format_args | 构造其他字符串格式宏的参数。 |
include | 根据上下文将文件解析为表达式或项。 |
include_bytes | 包含一个文件作为对字节数组的引用。 |
include_str | 包含 UTF-8 编码的文件作为字符串。 |
line | 扩展为在其上被调用的行号。 |
matches | 返回给定表达式是否与任何给定模式匹配。 |
module_path | 扩展为代表当前模块路径的字符串。 |
option_env | (可选) 在编译时检查环境变量。 |
panic | Panics 当前线程。 |
stringify | 对其参数进行字符串化。 |
todo | 表示未完成的代码。 |
try | Deprecated 解开结果或传播其错误。 |
unimplemented | 通过恐慌并带有 “not implemented” 消息来指示未实现的代码。 |
unreachable | 表示无法访问的代码。 |
write | 将格式化的数据写入缓冲区。 |
writeln | 将格式化的数据写入缓冲区,并附加换行符。 |