use clap::{Args, Parser, Subcommand, ValueEnum};
#[derive(Parser, Debug)]
#[command(name = "tasks", version, about = "A tiny task manager")]
pub struct Cli {
#[arg(short, long, global = true)]
use std::fmt;
#[derive(Debug)]
pub enum HashError {
Backend(String),
InvalidHash,
use std::any::Any;
pub trait CommandHandler {
fn name(&self) -> &str;
fn handle(&self, input: &dyn Any) -> Box<dyn Any>;
use std::collections::HashMap;
use std::fmt;
#[derive(Debug, Clone)]
pub struct Document {
pub body: String,