rtd-tutorial 0.1.1

Learn Rust by 500 lines code, build a Rust ToDo cli tool.
Documentation

500行代码学会Rust

English (TODO)| 中文

  • RTD (Rust ToDo) 是一个用500行(不包括空行/注释/长行折断显示)Rust 代码编写的todo app命令行工具。
  • RTD同时也是一个教程(TODO),旨在通过实践学习Rust。
  • Learning by doing!

目录


你能从RTD学到什么?

通过500行代码学会Rust(TODO)教程,一步步从零构建该项目,你将学会:

  • Rust常用语法
  • Rust模块系统(package/binary crate/library crate/mod/pub/use)
  • Rust所有权模型(伯恩斯坦条件)
  • Rust错误/空值处理(Result/Option)
  • Rust模式匹配(if let , match ...)
  • Rust单元测试
  • Rust文件读写(File Seek/Buffed File I/O)
  • Rust操作环境变量
  • Rust命令行参数解析
  • Rust发布包至crate.io
  • 分层抽象(数据存储层/模型映射层/数据模型层/业务逻辑层/应用接口层/用户接口层)
  • 从零手写序列化/反序列化
  • 实现回收站功能(虚拟化概念)
架构图

rtd_arch_zh

存储

使用一个本地文件 $HOME/.rtd.csv 存储所有数据

data_storage

完成该教程或直接安装RTD,你将得到:

  • 极其轻量级且简洁的todo命令行应用
  • 跨平台,Rust项目优秀的构建系统天然支持跨平台
  • 安全,支持回收站,完全本地,不联网,无数据库
  • 所有数据存储仅使用一个本地csv文件,可以通过复制csv文件来在不同机器间切换

如果你喜欢我的教程,别忘了给我点个赞哦~

准备

  • Rust 天然跨平台,本项目在 linux 环境构建测试,Windows/MacOS 同样支持,根据自身操作系统选择下载对应 Cargo 即可。
  • Cargo Rust 包管理和构建工具, 可通过官网rustup一行命令直接安装,接下来的事情,它会帮你全搞定,很可爱,不是吗?

安装

通过 crate.io :

cargo install rtd-tutorial

或者通过 git repo :

git clone https://github.com/cuppar/rtd.git
cargo install --path rtd

使用

查看帮助说明

rtd -h
rtd --help

rtd_help_summary rtd_help

添加一个todo

rtd -a <item-name>
rtd --add <item-name>

rtd_add

列出所有未完成的todo

rtd
rtd -l
rtd -l uncompleted
rtd --list
rtd --list uncompleted

rtd_list_uncompleted

完成一个todo

rtd -c <item-id>
rtd --complete <item-id>

rtd_complete_item

列出所有已完成的todo

rtd -l completed
rtd --list completed

rtd_list_completed

标记一个todo为未完成

rtd -u <item-id>
rtd --uncomplete <item-id>

rtd_uncomplete_item

把一个todo扔进回收站

rtd -d <item-id>
rtd --delete <item-id>

rtd_delete_item

列出所有回收站的todo

rtd -l deleted
rtd --list deleted

rtd_list_deleted

从回收站恢复一个todo

rtd -r <item-id>
rtd --restore <item-id>

rtd_restore_item

物理销毁一个todo

rtd --destroy <item-id>

rtd_destroy_item

清空回收站

rtd --destroy-deleted

rtd_destroy_deleted

列出所有todo

rtd -l all
rtd --list all

rtd_list_all

清空所有todo

rtd --clear

rtd_clear