aionbot_core/router/
error.rs1use std::{error::Error, marker::PhantomData};
2
3use crate::event::Event;
4
5use super::Router;
6
7pub struct ErrorRouter<E: Error> {
8 marker: PhantomData<E>,
9}
10
11impl<E: Error> ErrorRouter<E> {
12 pub fn new() -> Self {
13 Self::default()
14 }
15}
16
17impl<E: Error> Default for ErrorRouter<E> {
18 fn default() -> Self {
19 Self {
20 marker: PhantomData,
21 }
22 }
23}
24
25impl<E: Error + Send + Sync + 'static> Router for ErrorRouter<E> {
26 fn matches(&self, event: &dyn Event) -> bool {
27 event.content().downcast::<E>().is_ok()
28 }
29}