T64LKJ2RTUDFYSJQI7KF4WHZYXZHNEGNOS7ZMMCRIQZ4YN5LOOMAC
7JZIPWVKXY3QA5QMTP24WPR7KKMMVXIHAQ4EGHNGCE7H4CRKROCAC
CITEDKPB6MKVZUEYEDE5ZKTNVY35HCOAXKDPYG7YLLEOVFNMSRXQC
5LAG4UYS7ZP6FMYK55JWFGSFW6ESA6UYALQW64KPEFPM7JKJVQ7AC
GZZOJ7ZUSBPI3HXIV5UCFNMCDAMZPPLISY2UDV73FDN74HZ3AWJAC
UR5XDZ3SS7QXSUFAYQDYUXX4QDROIYVXUH3Z24F6PAWJDNODAZYAC
3LI5FAF5ULXOWBMTG4XCUOMUPVROSFDY6FWGE574OH4JGPMOPNVAC
}
struct ErrorVTable {
source: unsafe fn(*const ()) -> *const (dyn StdError + Send + Sync + 'static),
source_mut: unsafe fn(*mut ()) -> *mut (dyn StdError + Send + Sync + 'static),
}
unsafe fn source_raw<E>(e: *const ()) -> *const (dyn StdError + Send + Sync + 'static)
where
E: StdError + Send + Sync + 'static,
{
e as *const E
let object = TraitObject {
data: &mut self.error,
vtable: self.vtable,
};
unsafe {
mem::transmute::<TraitObject, &mut (dyn StdError + Send + Sync + 'static)>(object)
}
unsafe { &mut *(self.vtable.source_mut)(&mut self.error) }