重构代码:
删除 NullBulkString / NullArray
重构 BulkString / RespArray 代码,使其直接处理上面两种情况
数组的空,看分2种:
- b"*-1\r\n"
- b"*0\r\n"
只靠RespArray的成员属性Vec是无法区分返回哪种空的,因此增加第二个属性bool来标识是否是nill(即:b"*-1\r\n"的场景),这样使用,可以根据实情况,切换使用对应的空数组的
- b"*-1\r\n" ,这种nill场景,不知道redis-cli 命令行上,如何复现二级制是这种的情况
- 缺失足够的单元测试,进行验证..只是简单的做了集成测试,在命令行中作了简单测试
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- crates: Rust 包管理
- Even Better TOML: TOML 文件支持
- Better Comments: 优化注释显示
- Error Lens: 错误提示优化
- GitLens: Git 增强
- Github Copilot: 代码提示
- indent-rainbow: 缩进显示优化
- Prettier - Code formatter: 代码格式化
- REST client: REST API 调试
- rust-analyzer: Rust 语言支持
- Rust Test lens: Rust 测试支持
- Rust Test Explorer: Rust 测试概览
- TODO Highlight: TODO 高亮
- vscode-icons: 图标优化
- YAML: YAML 文件支持
cargo generate 是一个用于生成项目模板的工具。它可以使用已有的 github repo 作为模版生成新的项目。
cargo install cargo-generate
在我们的课程中,新的项目会使用 tyr-rust-bootcamp/template
模版生成基本的代码:
cargo generate tyr-rust-bootcamp/template
pre-commit 是一个代码检查工具,可以在提交代码前进行代码检查。
pipx install pre-commit
安装成功后运行 pre-commit install
即可。
Cargo deny 是一个 Cargo 插件,可以用于检查依赖的安全性。
cargo install --locked cargo-deny
typos 是一个拼写检查工具。
cargo install typos-cli
git cliff 是一个生成 changelog 的工具。
cargo install git-cliff
cargo nextest 是一个 Rust 增强测试工具。
cargo install cargo-nextest --locked