dns_common/
component.rs

1use crate::prelude::*;
2
3pub trait Component: Any + AsAny + Send + Sync {}
4
5pub trait AsAny: Any {
6    fn as_any(&self) -> &dyn Any;
7    fn as_mut_any(&mut self) -> &mut dyn Any;
8}
9
10impl<T> AsAny for T
11where
12    T: Any,
13{
14    fn as_any(&self) -> &dyn Any {
15        self
16    }
17
18    fn as_mut_any(&mut self) -> &mut dyn Any {
19        self
20    }
21}