clido 0.3.1

A tool for creating and maintaining a todo-list on the command line
#![warn(clippy::pedantic)]

#[macro_use]
extern crate prettytable;

mod commands;
mod db;
mod todo;

use anyhow::Result;
use clap::{Parser, Subcommand};

#[derive(Debug, Parser)]
#[command(
    name = "clido",
    author = "Elijah Hartvigsen <elijah.reed@hartvigsen.xyz>",
    about = "A small todo-list application"
)]
struct Cli {
    #[command(subcommand)]
    command: Command,
}

#[derive(Debug, Subcommand)]
enum Command {
    Add(commands::Add),
    Delete(commands::Delete),
    Mark(commands::Mark),
    List(commands::List),
    Modify(commands::Modify),
}

fn main() -> Result<()> {
    match Cli::parse().command {
        Command::Add(add) => commands::add(add),
        Command::Delete(del) => commands::del(del),
        Command::Mark(mark) => commands::mark(mark),
        Command::List(list) => commands::list(list),
        Command::Modify(mods) => commands::modify(mods),
    }
}