Crate core1.6.0[][src]

Expand description

Rust 核心库

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

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

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

如何使用核心库

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

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

  • memcpy, memcmpmemset - 这些是核心内存例程,通常由 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. 严格来说,有一些符号是必需的,但是 它们并不总是必需的。 

Modules

assert_matchesExperimental

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

intrinsicsExperimental

编译器内联函数。

lazyExperimental

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

panickingExperimental

Panic 对 libcore 的支持

streamExperimental

可组合的异步迭代。

unicodeExperimental
alloc

内存分配 API

any

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

arch

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

array

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

ascii

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

borrow

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

cell

可共享的可变容器。

char

一个字符类型。

clone

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

cmp

排序和比较的功能。

convert

Traits 用于类型之间的转换。

default

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

f32

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

f64

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

ffi

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

fmt

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

future

异步值。

hash

通用哈希支持。

hint

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

i8Deprecation planned

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

i16Deprecation planned

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

i32Deprecation planned

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

i64Deprecation planned

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

i128Deprecation planned

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

isizeDeprecation planned

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

iter

可组合的外部迭代。

marker

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

mem

处理内存的基本函数。

num

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

ops

可重载的运算符。

option

可选值。

panic

标准库中的 Panic 支持。

pin

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

prelude

libcore prelude

primitive

此模块重导出基本类型,以允许其他声明的类型不可能掩盖的用法。

ptr

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

result

Result 类型的错误处理。

slice

切片管理和操作。

str

字符串操作。

sync

同步原语

task

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

time

时间量化。

u8Deprecation planned

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

u16Deprecation planned

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

u32Deprecation planned

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

u64Deprecation planned

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

u128Deprecation planned

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

usizeDeprecation planned

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

Macros

concat_identsExperimental

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

format_args_nlExperimental

format_args 相同,但最后添加一个换行符。

llvm_asmExperimental

LLVM 样式的内联汇编。

log_syntaxExperimental

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

trace_macrosExperimental

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

assert

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

assert_eq

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

assert_ne

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

cfg

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

column

扩展到调用它的列号。

compile_error

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

concat

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

debug_assert

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

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

表示未完成的代码。

tryDeprecated

解开结果或传播其错误。

unimplemented

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

unreachable

表示无法访问的代码。

write

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

writeln

将格式化的数据写入缓冲区,并附加换行符。