One idea
A trait is a shared promise. It says: any type that implements me will provide these methods.
Use traits when your CLI has different things that should behave in the same way.
Why traits matter
Your Rust CLI will grow. Today it may print one kind of report. Tomorrow it may print tasks, expenses, marks, links, or UPI splits.
Instead of writing separate print logic everywhere, define the behaviour once as a trait. Then each type decides how it does that behaviour.