項目地址:https://github.com/MrTwoc/todo-rs
在第二篇中我試了一下表格庫,然後發現與 owo_color 庫不兼容,所以直接跳過了表格庫,用 owo_color 直接在控制台進行了 println! 方法。。
同時利用 tracing 庫和其依賴的庫實現了日誌記錄功能,能記錄用戶輸出了哪些指令,目前只是初步實現。
unicode-width 和 textwrap 庫幫我在終端把內容進行對齊。
目前已經實現的功能#
對任務數據的基礎操作 [增刪改查]。任務目前包含的字段:ID、任務名稱、任務描述、截止日期、任務狀態、任務分組、任務價值。
日誌功能:依賴 tracing 庫實現對成功執行的指令的記錄。可以指定什麼時間執行了什麼指令。
擴展操作:批量的狀態更新與刪除,例如批量完成、刪除任務,批量改變任務的狀態,一條指令即可操作多個任務。
輸出美化:利用的 owo_colors 庫與 emoji 符號就能基礎實現當前展示效果,但是因為中文字符的原因會有對不齊的現象。借助 unicode-width 庫可以解決。
計劃實現的功能#
字段排序:例如按 ' 任務價值 ' 從高到低排序,或者按 ' 截止日期 ' 從近到遠排序,可以借此功能學習一下排序算法與查找算法 (timsort、driftsort)(布隆過濾器)。
完成類型:
將任務分類為:每天 | 每週 | 每月 | 每年 | X 次 | 指定日期前完成。
最小化:
可以將任務窗口最小化到系統托盤中。
以及繼續優化當前的輸出效果,例如把已完成和已過期的任務添加刪除線的效果,刪除任務不再直接刪除,而是給予一個隱藏的任務狀態為:已刪除,展示任務時,將此類型任務過濾。