Day 2:專案初始化與資料模型
學習目標
- 建立 CLI 專案結構
- 定義資料模型(Task)
- 安裝依賴
今日重點
建立專案與依賴
cargo new todo-cli
cd todo-cli
cargo add clap --features derive
cargo add serde --features derive
cargo add serde_json
cargo add chrono
cargo add colored
資料模型:Task
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Task {
id: u64,
title: String,
done: bool,
created_at: String, // chrono 產生的時間戳
}
impl Task {
fn new(id: u64, title: String) -> Task {
Task {
id,
title,
done: false,
created_at: chrono::Local::now().to_rfc3339(),
}
}
}
Serialize / Deserialize 讓 Task 能轉成 JSON 存檔。
儲存檔案格式(data.json)
[
{"id": 1, "title": "學習 Rust", "done": false, "created_at": "..."}
]
練習
cargo new todo-cli 並加入依賴,跑 cargo build 確認能吃。
- 建立上述 Task 結構與
Task::new。
- 寫一個暫時的 main 建立一個 Task 印出 debug。
自我檢查