pub struct Router { /* private fields */ }Expand description
Handler registry + filter pipeline with middleware and nesting.
Implementations§
Source§impl Router
impl Router
Sourcepub fn use_middleware<F>(&mut self, middleware: F)
pub fn use_middleware<F>(&mut self, middleware: F)
Attach a middleware to this router.
The middleware wraps every route registered on this router and on
any router later nested via Router::include. Middleware added on a
parent runs outside middleware added on a child; the innermost
middleware wraps the handler itself.
Sourcepub fn include(&mut self, child: Router)
pub fn include(&mut self, child: Router)
Nest a child router. The child keeps its own filters and middleware; this router’s middleware wraps around them.
Sourcepub fn on_message<F>(&mut self, handler: F)
pub fn on_message<F>(&mut self, handler: F)
Register a handler for every MESSAGE_CREATE event.
Sourcepub fn on_message_filtered<F>(
&mut self,
handler: F,
filters: Vec<MessageFilter>,
)
pub fn on_message_filtered<F>( &mut self, handler: F, filters: Vec<MessageFilter>, )
Register a MESSAGE_CREATE handler guarded by filters (AND’d).
Sourcepub fn add_message_handler(&mut self, definition: MessageHandlerDef)
pub fn add_message_handler(&mut self, definition: MessageHandlerDef)
Register a handler definition produced by #[vaidcord::on_message].
Sourcepub fn on_event<F>(&mut self, kind: EventKind, handler: F)
pub fn on_event<F>(&mut self, kind: EventKind, handler: F)
Register a handler for an arbitrary event kind.
Sourcepub fn on_interaction<F>(&mut self, handler: F)
pub fn on_interaction<F>(&mut self, handler: F)
Register a handler for INTERACTION_CREATE events.
Sourcepub fn dispatch_message(&self, message: &Message) -> HandlerResult
pub fn dispatch_message(&self, message: &Message) -> HandlerResult
Dispatch a message through this router tree (filters + middleware).
Convenience wrapper that builds a one-shot Dispatcher; for the hot
path build a Dispatcher once and reuse it so middleware chains stay
precomposed.