Design for the data in recklist
Requirements
- Multiple named checklists
- Arbitrary number of tasks
- Arbitrary number of nested tasks
Data Structures
Main Data List
- Vector: checklists: can be an arbitrary length, vectors can be appended to and deleted from
checklist
- String: name: used to name the list itself
- Vector: list_item: used to hold the actual todo, if it's done, and sub-lists
todos
- String: todo: used to hold the actual todo item
- Boolean: done: is done
- u64: due_by: utc due date
- u64: completed_on: utc date it was checked off
- Vector: todos: sublist of todos
Saving
Rust has a way to serialize and dump data structures, still need to figure out the limitations, since these data structures use nested lists and structs.