use std::fmt::Debug; use async_trait::async_trait; use crate::framework::commands::{CommandError, context::CommandContext}; #[async_trait] pub trait Permission: Debug { async fn check(&self, ctx: &CommandContext) -> Result; async fn on_handle_denied(&self, _ctx: &CommandContext) -> Result<(), CommandError> { Ok(()) } }