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::any::Any;
pub trait CommandHandler {
fn name(&self) -> &str;
fn handle(&self, input: &dyn Any) -> Box<dyn Any>;
use std::collections::HashMap;
use serde_json::Value;
#[derive(Debug)]
pub enum DispatchError {
UnknownCommand(String),
from dataclasses import dataclass
class ConfigError(Exception):
pass
use serde::Deserialize;
#[derive(Debug, Deserialize)]
#[serde(tag = "type", content = "data", rename_all = "snake_case")]
pub enum WebhookEvent {
#[serde(rename = "payment.succeeded")]
package webhook
import (
"encoding/json"
"io"
"net/http"