1/* 2use std::error::Error; 3 4pub(crate) fn find<'a, E: Error + 'static>(top: &'a (dyn Error + 'static)) -> Option<&'a E> { 5 let mut err = Some(top); 6 while let Some(src) = err { 7 if src.is::<E>() { 8 return src.downcast_ref(); 9 } 10 err = src.source(); 11 } 12 None 13} 14*/