use crate::framework::interactions::{InteractionError, context::InteractionContext}; use async_trait::async_trait; use std::fmt::Debug; use twilight_model::gateway::payload::incoming::InteractionCreate; #[async_trait] pub trait MessageCommand: Send + Sync + Debug { fn name(&self) -> &'static str; fn description(&self) -> &'static str { "A message context menu command duh." } async fn execute( &self, ctx: InteractionContext, target_message_id: u64, ) -> Result<(), InteractionError>; }