aboutsummaryrefslogtreecommitdiff
path: root/examples/full-todolist/src/help.rs
blob: ab3317641f42e9d057987fd80fc7e3b2098b8b18 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//! This module provides help information for the `todolist` command line program

use mingling::macros::{help, r_println};

use crate::{EntryAdd, EntryClean, EntryComplete, EntryList, ErrorDispatcherNotFound};

#[help]
pub fn help_global(_p: ErrorDispatcherNotFound) {
    r_println!(
        "{}",
        r"
Usage: todolist [command] [args]

Commands:
  add            -- Add a new task
  list           -- List all tasks
  complete       -- Mark a task as complete
  clean          -- Clean up completed tasks

Args:
  -h, --help     -- Show this help message
  -V, --version  -- Show the version
  -A, --all      -- All tasks (Clean all / List all)
            "
        .trim()
    );
}

#[help]
pub fn help_add(_p: EntryAdd) {
    r_println!(
        "{}",
        r"
Usage: todolist add [task description]

Add a new task to the todo list.

Example:
  todolist add 'Buy groceries'
  todolist add 'Finish Rust project'
            "
        .trim()
    );
}

#[help]
pub fn help_list(_p: EntryList) {
    r_println!(
        "{}",
        r"
Usage: todolist list

List all tasks.

Example:
  todolist list
            "
        .trim()
    );
}

#[help]
pub fn help_complete(_p: EntryComplete) {
    r_println!(
        "{}",
        r"
Usage: todolist complete [task_id]

Mark a task as complete by its ID.

Example:
  todolist complete 1
  todolist complete 3
            "
        .trim()
    );
}

#[help]
pub fn help_clean(_p: EntryClean) {
    r_println!(
        "{}",
        r"
Usage: todolist clean

Remove all completed tasks from the list.

Example:
  todolist clean
            "
        .trim()
    );
}