Crate core1.6.0[][src]

Expand description

Rust 核心库

Rust 核心库是 Rust 标准库 的无依赖 1 基础。 它是语言和标准库库之间的可移植粘合剂,它定义了所有 Rust 代码的内在和原始构建块。

它没有链接到上游库,没有系统库,也没有 libc。

核心库是 最小的: 它甚至不知道堆分配,也不提供并发或 I/O。 这些东西都需要平台集成,而核心库是与平台无关的。

如何使用核心库

请注意,所有这些细节目前都被认为是不稳定的。

这个库建立在一些现有符号的假设之上:

  • memcpymemcmpmemset - 这些是通常由 LLVM 生成的核心内存例程。 此外,这个库可以显式地调用这些函数。 它们的签名与 C 中的签名相同。 这些函数通常由系统 libc 提供,但也可以由 编译器内置 crate 提供。

  • rust_begin_panic - 这个函数需要四个参数,一个 fmt::Arguments、一个 &'static str 和两个 u32。 这四个参数指示 panic 消息,调用 panic 的文件以及文件中的行和列。 定义此 panic 函数由该核心库的消费者决定; 它只要求返回 never。 这需要一个名为 panic_impllang 属性。

  • rust_eh_personality - 由编译器的故障机制使用。 这通常映射到 GCC 的 personality 函数,但是可以确保不会触发 panic 的 crate 永远不会调用此函数。 lang 属性称为 eh_personality


  1. 严格来说,有些符号是需要的,但是 它们并不总是必需的。 

Primitive Types

neverExperimental

! 类型,也称为 “never”。

一个固定大小的数组,表示为 [T; N],用于元素类型 T 和非负编译时常量大小 N

布尔类型。

一个字符类型。

32 位浮点类型 (特别是 IEEE 754-2008 中定义的 “binary32” 类型)。

64 位浮点类型 (特别是 IEEE 754-2008 中定义的 “binary64” 类型)。

函数指针,例如 fn(usize) -> bool

8 位带符号整数类型。

16 位带符号整数类型。

32 位带符号整数类型。

64 位带符号整数类型。

128 位带符号整数类型。

指针大小的有符号整数类型。

原始的、不安全的指针 *const T*mut T

引用,包括共享引用和可变引用。

一个动态大小的视图到一个连续的序列,[T]。 这里的连续意味着元素的布局应使每个元素与其相邻元素之间的距离相同。

字符串切片。

一个有限异构序列,(T, U, ..)

8 位无符号整数类型。

16 位无符号整数类型。

32 位无符号整数类型。

64 位无符号整数类型。

128 位无符号整数类型。

() 类型,也称为 “unit”。

指针大小的无符号整数类型。

Modules

assert_matchesExperimental

Unstable 模块包含不稳定的 assert_matches 宏。

intrinsicsExperimental

编译器内部函数。

lazyExperimental

惰性值和静态数据的一次性初始化。

panickingExperimental

对 libcore 的 panic 支持

streamExperimental

可组合的异步迭代。

unicodeExperimental

内存分配 API

该模块实现了 Any trait,它可以通过运行时反射来动态键入任何 'static 类型。

SIMD 和供应商内部功能模块。

固定长度数组的辅助函数和类型。

对 ASCII 字符串和字符的操作。

用于处理借用数据的模块。

可共享的可变容器。

一个字符类型。

不能隐式复制的类型的 Clone trait。

排序和比较的功能。

用于类型之间的转换 traits。

可能具有有意义的默认值的类型的 Default trait。

f32 单精度浮点类型专用的常量。

f64 双精度浮点类型专用的常量。

与外部函数接口 (FFI) 绑定有关的实用工具。

用于格式化和打印字符串的实用工具。

异步值。

通用哈希支持。

对编译器的提示,该提示会影响应如何发出或优化代码。 提示可能是编译时或运行时。

i8Deprecation planned

8 位带符号整数类型的常量。

i16Deprecation planned

16 位带符号整数类型的常量。

i32Deprecation planned

32 位带符号整数类型的常量。

i64Deprecation planned

64 位有符号整数类型的常量。

i128Deprecation planned

128 位有符号整数类型的常量。

isizeDeprecation planned

指针大小的有符号整数类型的常量。

可组合的外部迭代。

代表类型基本属性的原始 traits 和类型。

处理内存的基本函数。

内置数字类型的数字 traits 和函数。

可重载的运算符。

可选值。

标准库中的 Panic 支持。

键入将数据固定到其在内存中的位置的类型。

The libcore prelude

此模块重导出原始类型,以允许使用可能不会被其他声明的类型隐藏的类型。

通过裸指针手动管理内存。

Result 类型的错误处理。

切片管理和操作。

字符串操作。

同步原语

类型和 Traits 用于处理异步任务。

时间量化。

u8Deprecation planned

8 位无符号整数类型的常量。

u16Deprecation planned

16 位无符号整数类型的常量。

u32Deprecation planned

32 位无符号整数类型的常量。

u64Deprecation planned

64 位无符号整数类型的常量。

u128Deprecation planned

128 位无符号整数类型的常量。

usizeDeprecation planned

指针大小的无符号整数类型的常量。

Macros

concat_identsExperimental

将标识符串联为一个标识符。

const_format_argsExperimental

format_args 相同,但可以在某些 const 上下文中使用。

llvm_asmDeprecatedExperimental

LLVM 样式的内联汇编。

log_syntaxExperimental

将传递的 tokens 打印到标准输出中。

trace_macrosExperimental

启用或禁用用于调试其他宏的跟踪功能。

声明在运行时布尔表达式为 true

断言两个表达式彼此相等 (使用 PartialEq)。

断言两个表达式彼此不相等 (使用 PartialEq)。

在编译时评估配置标志的布尔组合。

扩展到调用它的列号。

导致编译失败,并遇到给定的错误消息。

将字面量串联成一个静态字符串切片。

声明在运行时布尔表达式为 true

断言两个表达式彼此相等。

断言两个表达式彼此不相等。

在编译时检查环境变量。

扩展为调用该文件的文件名。

构造其他字符串格式宏的参数。

根据上下文将文件解析为表达式或项。

包含一个文件作为对字节数组的引用。

包含 UTF-8 编码的文件作为字符串。

扩展为在其上被调用的行号。

返回给定表达式是否与任何给定模式匹配。

扩展为代表当前模块路径的字符串。

(可选) 在编译时检查环境变量。

让当前线程 panics。

对其参数进行字符串化。

表示未完成的代码。

tryDeprecated

解开结果或传播其错误。

通过 panic 并带有 “not implemented” 的消息来指示未实现的代码。

表示无法访问的代码。

将格式化的数据写入缓冲区。

将格式化的数据写入到缓冲区,并追加一个换行符。