banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、拿铁咖啡、游戏(Minecraft、Warframe、CS) 兴趣方向:Rust、区块链、图形学、游戏设计与开发
bilibili
steam
email
github

[1]Todo-rs

コマンドライン版の TodoList ツール#

プロジェクトアドレス:https://github.com/MrTwoc/todo-rs

image

Rust 言語で実装されたコンソールベースの todolist で、主にイベントの記録と打刻に使用されます。現在、基本的な CRUD 機能が実装されています。
今後は [表形式の出力 + emoji シンボル] を使って出力結果を美化する予定です。例えば:
✅🟢【完了】 🟡⏸️【未定】

ロジック処理#

追加=>
 command_add()=>ユーザー入力を受け取り、最初のパラメータがaddであるかを判断し、次にパラメータの長さを判断します。パラメータ<3の場合はパラメータが不足していると表示されます。
その後、Target::add()=>メソッドを呼び出し、4つのパラメータを受け取ります。<タスク名><締切>[説明][グループ]、[]はオプションのパラメータです。
したがって、タスク名と日付を入力するだけでタスクを追加でき、他のパラメータはデフォルト値が設定されます。
追加する前に、ファイル内のすべてのタスクのIDを走査し、新しいタスクに+1を加え、その後jsonに書き込みます。
                                           
削除=>
jsonファイルを読み込み、長さを保存する変数を定義し、.retainメソッドを呼び出します。作用=>
tasksベクター内の各要素を走査します。
各要素に対してクロージャ|task| task.id != Some(id)を実行します。
クロージャがtrueを返す要素を保持し、falseを返す要素を削除します。
その後、削除前と削除後の長さを比較し、前の長さより小さければ削除成功です。
                                           
クエリ=>
jsonを読み込み、その後走査します。

編集=>
ユーザー入力を受け取り、コマンドの長さが<3または(コマンドの長さ - 1) % 2 == 0の場合は不一致を表示します。なぜなら、0、1はeditとタスクIDで、
2はフィールド名、2+1は変更内容だからです。したがって、このように一致させ、Target::edit()=>メソッドに入ります。
idが合法かつ存在するかを判断し、その後idでタスクを取得し、forループに入ります。フィールドとパラメータの2つの変数を定義し、matchでフィールドを一致させます。
一致した場合は変更し、その後jsonファイルに書き込みます。
// 可変タスク参照を取得
        let task = &mut tasks[task_index];

        // フィールド更新を解析して適用(インデックス1から開始し、2つのパラメータごとに1組)
        for i in (2..args.len()).step_by(2) {
            let field = args[i];
            let value = args[i + 1];

            // タスクの状態は個別に指示を変更可能
            match field {
                "name" => task.target_name = value.to_string(),
                "deadline" => task.deadline = value.to_string(),
                "description" => task.description = Some(value.to_string()),
                "group" => task.group = Some(value.to_string()),

                _ => eprintln!("サポートされていないフィールド: {}", field),
            }
        }

プロジェクト TODO#

  1. タスクの完了タイプを追加する、例えば ——
    毎年 | 月 | 週 | 日 | 累計 X 回 | 指定日までに完了
  2. アプリケーションはデスクトップトレイまたはバックグラウンドで実行可能
  3. 複数ウィンドウ、例えば指定グループのタスク詳細を表示する場合は新しいウィンドウに表示
  4. キーワード検索、キーワードでタスクを検索可能
  5. バッチ操作:一度のコマンド入力で複数のタスクを編集、例えばタスクを一括完了
  6. 操作記録、完了記録:ユーザーが成功裏に実行した各コマンドを記録し、タイムスタンプ形式でタスク完了時間を記録し、アプリ内で記録を確認可能
  7. パフォーマンス最適化:現在のメモリ使用量は約 12MB で高いと感じており、リソース使用を可能な限り低減する予定
  8. ⏸️タスクカレンダー:当月のカレンダーを出力可能
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。