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}