1pub(crate) trait DowncastRef<T> { 2 fn downcast_ref(from: &T) -> Option<&Self>; 3} 4 5pub(crate) trait DowncastMut<T> { 6 fn downcast_mut(from: &mut T) -> Option<&mut Self>; 7}