ataraxy 0.1.1

Discord slash commands framework for Serenity
Documentation
pub mod argument;

use crate::framework::command::argument::{ArgumentList, CommandSignature};

use std::fmt::{Debug, Formatter};
use std::future::Future;
use std::pin::Pin;

#[derive(Debug, Clone)]
pub struct CommandError {}

type Handler = for<'a> fn(
    super::context::Context,
    &'a ArgumentList,
) -> Pin<Box<dyn Future<Output = ()> + Send>>;

#[derive(Clone)]
pub struct CommandHandler(pub Handler);

impl Debug for CommandHandler {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        write!(f, "Command Handler")
    }
}

#[derive(Debug, Clone)]
pub struct Command {
    pub name: String,
    pub description: String,
    pub guilds: Option<Vec<u64>>,
    pub arguments: CommandSignature,
    pub action: CommandHandler,
}