tasky_cli/task.rs
1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone)]
4pub struct Task {
5 pub text: String,
6 pub done: bool,
7 pub date_string: Option<String>,
8}
9
10impl Task {
11 pub fn new(text: String, date_string: String) -> Self {
12 let date_opt = if date_string.trim().is_empty() {
13 None
14 } else {
15 Some(date_string)
16 };
17 Self {
18 text,
19 done: false,
20 date_string: date_opt,
21 }
22 }
23
24 pub fn mark_done(&mut self) {
25 self.done = true;
26 }
27}