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}