|
|
|
@ -96,64 +96,104 @@
|
|
|
|
|
- [Macro 宏编程](advance/macro.md)
|
|
|
|
|
<!-- - [SIMD todo](advance/simd.md) -->
|
|
|
|
|
<!-- - [高阶特征约束(HRTB) todo](advance/hrtb.md) -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- [易混淆概念解析](advance/confonding/intro.md)
|
|
|
|
|
- [切片和切片引用](advance/confonding/slice.md)
|
|
|
|
|
- [Eq 和 PartialEq](advance/confonding/eq.md)
|
|
|
|
|
- [String、&str 和 str todo](advance/confonding/string.md)
|
|
|
|
|
- [原生指针、引用和智能指针 todo](advance/confonding/pointer.md)
|
|
|
|
|
- [作用域、生命周期和 NLL todo](advance/confonding/lifetime.md)
|
|
|
|
|
- [move、Copy 和 Clone todo](advance/confonding/move-copy.md)
|
|
|
|
|
|
|
|
|
|
## 专题内容,每个专题都配套一个小型项目进行实践
|
|
|
|
|
|
|
|
|
|
- [自动化测试](test/intro.md)
|
|
|
|
|
- [编写测试及控制执行](test/write-tests.md)
|
|
|
|
|
- [单元测试和集成测试](test/unit-integration-test.md)
|
|
|
|
|
- [断言 assertion](test/assertion.md)
|
|
|
|
|
- [用 Github Actions 进行持续集成](test/ci.md)
|
|
|
|
|
- [基准测试 benchmark](test/benchmark.md)
|
|
|
|
|
|
|
|
|
|
- [Rust 异步编程](async-rust/intro.md)
|
|
|
|
|
- [async/await 异步编程](async-rust/async/intro.md)
|
|
|
|
|
- [async 编程入门](async-rust/async/getting-started.md)
|
|
|
|
|
- [底层探秘: Future 执行与任务调度](async-rust/async/future-excuting.md)
|
|
|
|
|
- [定海神针 Pin 和 Unpin](async-rust/async/pin-unpin.md)
|
|
|
|
|
- [async/await 和 Stream 流处理](async-rust/async/async-await.md)
|
|
|
|
|
- [同时运行多个 Future](async-rust/async/multi-futures-simultaneous.md)
|
|
|
|
|
- [一些疑难问题的解决办法](async-rust/async/pain-points-and-workarounds.md)
|
|
|
|
|
- [实践应用:Async Web 服务器](async-rust/async/web-server.md)
|
|
|
|
|
- [Tokio 使用指南](async-rust/tokio/intro.md)
|
|
|
|
|
- [tokio 概览](async-rust/tokio/overview.md)
|
|
|
|
|
- [使用初印象](async-rust/tokio/getting-startted.md)
|
|
|
|
|
- [创建异步任务](async-rust/tokio/spawning.md)
|
|
|
|
|
- [共享状态](async-rust/tokio/shared-state.md)
|
|
|
|
|
- [消息传递](async-rust/tokio/channels.md)
|
|
|
|
|
- [I/O](async-rust/tokio/io.md)
|
|
|
|
|
- [解析数据帧](async-rust/tokio/frame.md)
|
|
|
|
|
- [深入 async](async-rust/tokio/async.md)
|
|
|
|
|
- [select](async-rust/tokio/select.md)
|
|
|
|
|
- [类似迭代器的 Stream](async-rust/tokio/stream.md))
|
|
|
|
|
- [优雅的关闭](async-rust/tokio/graceful-shutdown.md)
|
|
|
|
|
- [异步跟同步共存](async-rust/tokio/bridging-with-sync.md)
|
|
|
|
|
|
|
|
|
|
- [async/await 异步编程](async/intro.md)
|
|
|
|
|
- [async 编程入门](async/getting-started.md)
|
|
|
|
|
- [底层探秘: Future 执行与任务调度](async/future-excuting.md)
|
|
|
|
|
- [定海神针 Pin 和 Unpin](async/pin-unpin.md)
|
|
|
|
|
- [async/await 和 Stream 流处理](async/async-await.md)
|
|
|
|
|
- [同时运行多个 Future](async/multi-futures-simultaneous.md)
|
|
|
|
|
- [一些疑难问题的解决办法](async/pain-points-and-workarounds.md)
|
|
|
|
|
- [实践应用:Async Web 服务器](async/web-server.md)
|
|
|
|
|
- [Tokio 使用指南](tokio/intro.md)
|
|
|
|
|
- [tokio 概览](tokio/overview.md)
|
|
|
|
|
- [使用初印象](tokio/getting-startted.md)
|
|
|
|
|
- [创建异步任务](tokio/spawning.md)
|
|
|
|
|
- [共享状态](tokio/shared-state.md)
|
|
|
|
|
- [消息传递](tokio/channels.md)
|
|
|
|
|
- [I/O](tokio/io.md)
|
|
|
|
|
- [解析数据帧](tokio/frame.md)
|
|
|
|
|
- [深入 async](tokio/async.md)
|
|
|
|
|
- [select](tokio/select.md)
|
|
|
|
|
- [类似迭代器的 Stream](tokio/stream.md))
|
|
|
|
|
- [优雅的关闭](tokio/graceful-shutdown.md)
|
|
|
|
|
- [异步跟同步共存](tokio/bridging-with-sync.md)
|
|
|
|
|
|
|
|
|
|
- [Cargo 使用指南](cargo/intro.md)
|
|
|
|
|
- [上手使用](cargo/getting-started.md)
|
|
|
|
|
- [基础指南](cargo/guide/intro.md)
|
|
|
|
|
- [为何会有 Cargo](cargo/guide/why-exist.md)
|
|
|
|
|
- [下载并构建 Package](cargo/guide/download-package.md)
|
|
|
|
|
- [添加依赖](cargo/guide/dependencies.md)
|
|
|
|
|
- [Package 目录结构](cargo/guide/package-layout.md)
|
|
|
|
|
- [Cargo.toml vs Cargo.lock](cargo/guide/cargo-toml-lock.md)
|
|
|
|
|
- [测试和 CI](cargo/guide/tests-ci.md)
|
|
|
|
|
- [Cargo 缓存](cargo/guide/cargo-cache.md)
|
|
|
|
|
- [Build 缓存](cargo/guide/build-cache.md)
|
|
|
|
|
- [进阶指南](cargo/reference/intro.md)
|
|
|
|
|
- [指定依赖项](cargo/reference/specify-deps.md)
|
|
|
|
|
- [依赖覆盖](cargo/reference/deps-overriding.md)
|
|
|
|
|
- [Cargo.toml 清单详解](cargo/reference/manifest.md)
|
|
|
|
|
- [Cargo Target](cargo/reference/cargo-target.md)
|
|
|
|
|
- [工作空间 Workspace](cargo/reference/workspaces.md)
|
|
|
|
|
- [条件编译 Features](cargo/reference/features/intro.md)
|
|
|
|
|
- [Features 示例](cargo/reference/features/examples.md)
|
|
|
|
|
- [发布配置 Profile](cargo/reference/profiles.md)
|
|
|
|
|
- [通过 config.toml 对 Cargo 进行配置](cargo/reference/configuration.md)
|
|
|
|
|
- [发布到 crates.io](cargo/reference/publishing-on-crates.io.md)
|
|
|
|
|
- [构建脚本 build.rs](cargo/reference/build-script/intro.md)
|
|
|
|
|
- [构建脚本示例](cargo/reference/build-script/examples.md)
|
|
|
|
|
|
|
|
|
|
- [手把手带你实现链表 doing](too-many-lists/intro.md)
|
|
|
|
|
- [Rust 工具链指南](toolchains/intro.md)
|
|
|
|
|
- [Cargo 使用指南](toolchains/cargo/intro.md)
|
|
|
|
|
- [上手使用](toolchains/cargo/getting-started.md)
|
|
|
|
|
- [基础指南](toolchains/cargo/guide/intro.md)
|
|
|
|
|
- [为何会有 Cargo](toolchains/cargo/guide/why-exist.md)
|
|
|
|
|
- [下载并构建 Package](toolchains/cargo/guide/download-package.md)
|
|
|
|
|
- [添加依赖](toolchains/cargo/guide/dependencies.md)
|
|
|
|
|
- [Package 目录结构](toolchains/cargo/guide/package-layout.md)
|
|
|
|
|
- [Cargo.toml vs Cargo.lock](toolchains/cargo/guide/cargo-toml-lock.md)
|
|
|
|
|
- [测试和 CI](toolchains/cargo/guide/tests-ci.md)
|
|
|
|
|
- [Cargo 缓存](toolchains/cargo/guide/cargo-cache.md)
|
|
|
|
|
- [Build 缓存](toolchains/cargo/guide/build-cache.md)
|
|
|
|
|
- [进阶指南](toolchains/cargo/reference/intro.md)
|
|
|
|
|
- [指定依赖项](toolchains/cargo/reference/specify-deps.md)
|
|
|
|
|
- [依赖覆盖](toolchains/cargo/reference/deps-overriding.md)
|
|
|
|
|
- [Cargo.toml 清单详解](toolchains/cargo/reference/manifest.md)
|
|
|
|
|
- [Cargo Target](toolchains/cargo/reference/cargo-target.md)
|
|
|
|
|
- [工作空间 Workspace](toolchains/cargo/reference/workspaces.md)
|
|
|
|
|
- [条件编译 Features](toolchains/cargo/reference/features/intro.md)
|
|
|
|
|
- [Features 示例](toolchains/cargo/reference/features/examples.md)
|
|
|
|
|
- [发布配置 Profile](toolchains/cargo/reference/profiles.md)
|
|
|
|
|
- [通过 config.toml 对 Cargo 进行配置](toolchains/cargo/reference/configuration.md)
|
|
|
|
|
- [发布到 crates.io](toolchains/cargo/reference/publishing-on-crates.io.md)
|
|
|
|
|
- [构建脚本 build.rs](toolchains/cargo/reference/build-script/intro.md)
|
|
|
|
|
- [构建脚本示例](toolchains/cargo/reference/build-script/examples.md)
|
|
|
|
|
|
|
|
|
|
- [Rust 最佳实践](practice/intro.md)
|
|
|
|
|
- [对抗编译检查](practice/fight-with-compiler/intro.md)
|
|
|
|
|
- [生命周期](practice/fight-with-compiler/lifetime/intro.md)
|
|
|
|
|
- [生命周期过大-01](practice/fight-with-compiler/lifetime/too-long1.md)
|
|
|
|
|
- [生命周期过大-02](practice/fight-with-compiler/lifetime/too-long2.md)
|
|
|
|
|
- [循环中的生命周期](practice/fight-with-compiler/lifetime/loop.md)
|
|
|
|
|
- [闭包碰到特征对象-01](practice/fight-with-compiler/lifetime/closure-with-static.md)
|
|
|
|
|
- [重复借用](practice/fight-with-compiler/borrowing/intro.md)
|
|
|
|
|
- [同时在函数内外使用引用](practice/fight-with-compiler/borrowing/ref-exist-in-out-fn.md)
|
|
|
|
|
- [智能指针引起的重复借用错误](practice/fight-with-compiler/borrowing/borrow-distinct-fields-of-struct.md)
|
|
|
|
|
- [类型未限制(todo)](practice/fight-with-compiler/unconstrained.md)
|
|
|
|
|
- [幽灵数据(todo)](practice/fight-with-compiler/phantom-data.md)
|
|
|
|
|
- [Rust 常见陷阱](practice/pitfalls/index.md)
|
|
|
|
|
- [for 循环中使用外部数组](practice/pitfalls/use-vec-in-for.md)
|
|
|
|
|
- [线程类型导致的栈溢出](practice/pitfalls/stack-overflow.md)
|
|
|
|
|
- [算术溢出导致的 panic](practice/pitfalls/arithmetic-overflow.md)
|
|
|
|
|
- [闭包中奇怪的生命周期](practice/pitfalls/closure-with-lifetime.md)
|
|
|
|
|
- [可变变量不可变?](practice/pitfalls/the-disabled-mutability.md)
|
|
|
|
|
- [可变借用失败引发的深入思考](practice/pitfalls/multiple-mutable-references.md)
|
|
|
|
|
- [不太勤快的迭代器](practice/pitfalls/lazy-iterators.md)
|
|
|
|
|
- [奇怪的序列 x..y](practice/pitfalls/weird-ranges.md)
|
|
|
|
|
- [无处不在的迭代器](practice/pitfalls/iterator-everywhere.md)
|
|
|
|
|
- [线程间传递消息导致主线程无法结束](practice/pitfalls/main-with-channel-blocked.md)
|
|
|
|
|
- [警惕 UTF-8 引发的性能隐患](practice/pitfalls/utf8-performance.md)
|
|
|
|
|
- [日常开发三方库精选](practice/third-party-libs.md)
|
|
|
|
|
- [命名规范](practice/naming.md)
|
|
|
|
|
- [面试经验 doing](practice/interview.md)
|
|
|
|
|
- [代码开发实践 todo](practice/best-pratice.md)
|
|
|
|
|
- [日志记录 todo](practice/logs.md)
|
|
|
|
|
- [可观测性监控 todo](practice/observability.md)
|
|
|
|
|
|
|
|
|
|
- [手把手带你实现链表](too-many-lists/intro.md)
|
|
|
|
|
- [我们到底需不需要链表](too-many-lists/do-we-need-it.md)
|
|
|
|
|
- [不太优秀的单向链表:栈](too-many-lists/bad-stack/intro.md)
|
|
|
|
|
- [数据布局](too-many-lists/bad-stack/layout.md)
|
|
|
|
@ -172,48 +212,9 @@
|
|
|
|
|
- [Peek](too-many-lists/deque/peek.md)
|
|
|
|
|
- [基本操作的对称镜像](too-many-lists/deque/symmetric.md)
|
|
|
|
|
- [迭代器](too-many-lists/deque/iterator.md)
|
|
|
|
|
- [易混淆概念解析](confonding/intro.md)
|
|
|
|
|
- [切片和切片引用](confonding/slice.md)
|
|
|
|
|
- [Eq 和 PartialEq](confonding/eq.md)
|
|
|
|
|
- [String、&str 和 str todo](confonding/string.md)
|
|
|
|
|
- [原生指针、引用和智能指针 todo](confonding/pointer.md)
|
|
|
|
|
- [作用域、生命周期和 NLL todo](confonding/lifetime.md)
|
|
|
|
|
- [move、Copy 和 Clone todo](confonding/move-copy.md)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- [对抗编译检查 doing](fight-with-compiler/intro.md)
|
|
|
|
|
- [幽灵数据(todo)](fight-with-compiler/phantom-data.md)
|
|
|
|
|
- [生命周期](fight-with-compiler/lifetime/intro.md)
|
|
|
|
|
- [生命周期过大-01](fight-with-compiler/lifetime/too-long1.md)
|
|
|
|
|
- [生命周期过大-02](fight-with-compiler/lifetime/too-long2.md)
|
|
|
|
|
- [循环中的生命周期](fight-with-compiler/lifetime/loop.md)
|
|
|
|
|
- [闭包碰到特征对象-01](fight-with-compiler/lifetime/closure-with-static.md)
|
|
|
|
|
- [重复借用](fight-with-compiler/borrowing/intro.md)
|
|
|
|
|
- [同时在函数内外使用引用](fight-with-compiler/borrowing/ref-exist-in-out-fn.md)
|
|
|
|
|
- [智能指针引起的重复借用错误](fight-with-compiler/borrowing/borrow-distinct-fields-of-struct.md)
|
|
|
|
|
- [类型未限制(todo)](fight-with-compiler/unconstrained.md)
|
|
|
|
|
|
|
|
|
|
- [Rust 常见陷阱](pitfalls/index.md)
|
|
|
|
|
- [for 循环中使用外部数组](pitfalls/use-vec-in-for.md)
|
|
|
|
|
- [线程类型导致的栈溢出](pitfalls/stack-overflow.md)
|
|
|
|
|
- [算术溢出导致的 panic](pitfalls/arithmetic-overflow.md)
|
|
|
|
|
- [闭包中奇怪的生命周期](pitfalls/closure-with-lifetime.md)
|
|
|
|
|
- [可变变量不可变?](pitfalls/the-disabled-mutability.md)
|
|
|
|
|
- [可变借用失败引发的深入思考](pitfalls/multiple-mutable-references.md)
|
|
|
|
|
- [不太勤快的迭代器](pitfalls/lazy-iterators.md)
|
|
|
|
|
- [奇怪的序列 x..y](pitfalls/weird-ranges.md)
|
|
|
|
|
- [无处不在的迭代器](pitfalls/iterator-everywhere.md)
|
|
|
|
|
- [线程间传递消息导致主线程无法结束](pitfalls/main-with-channel-blocked.md)
|
|
|
|
|
- [警惕 UTF-8 引发的性能隐患](pitfalls/utf8-performance.md)
|
|
|
|
|
|
|
|
|
|
- [Rust 最佳实践 doing](practice/intro.md)
|
|
|
|
|
- [日常开发三方库精选](practice/third-party-libs.md)
|
|
|
|
|
- [命名规范](practice/naming.md)
|
|
|
|
|
- [代码开发实践 todo](practice/best-pratice.md)
|
|
|
|
|
- [日志记录 todo](practice/logs.md)
|
|
|
|
|
- [可观测性监控 todo](practice/observability.md)
|
|
|
|
|
- [面试经验 doing](practice/interview.md)
|
|
|
|
|
|
|
|
|
|
- [Rust 性能剖析 todo](profiling/intro.md)
|
|
|
|
|
- [Rust 性能优化 todo](profiling/intro.md)
|
|
|
|
|
- [深入内存 todo](profiling/memory/intro.md)
|
|
|
|
|
- [指针和引用 todo](profiling/memory/pointer-ref.md)
|
|
|
|
|
- [未初始化内存 todo](profiling/memory/uninit.md)
|
|
|
|
@ -239,13 +240,14 @@
|
|
|
|
|
- [编译器优化 todo](profiling/compiler/optimization/intro.md)
|
|
|
|
|
- [Option 枚举 todo](profiling/compiler/optimization/option.md)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- [标准库解析 todo](std/intro.md)
|
|
|
|
|
- [标准库使用最佳时间 todo](std/search.md)
|
|
|
|
|
- [Vector 常用方法 todo](std/vector.md)
|
|
|
|
|
- [HashMap todo](std/hashmap.md)
|
|
|
|
|
- [Iterator 常用方法 todo](std/iterator.md)
|
|
|
|
|
|
|
|
|
|
- [CookBook](cases/intro.md)
|
|
|
|
|
- [CookBook todo](cases/intro.md)
|
|
|
|
|
- [命令行解析 todo](cases/cmd.md)
|
|
|
|
|
- [配置文件解析 todo](cases/config.md)
|
|
|
|
|
- [编解码 todo](cases/encoding/intro.md)
|
|
|
|
|