KQE34I2L7O32GTKV4NNWIEVIQ4WR2ZV4F6MCFNSWPDAAAVYZFEJQC
ZEYYSYM7QBZG4Q67AN3CHYZQWO2DVVHXRAK6NX44UQD6VO3JTK3AC
TOXJRHV7ZUPHWXCA4TAG3YRBTIPUZQ5BNX34D3VD2JAIYLRN6XSAC
CITEDKPB6MKVZUEYEDE5ZKTNVY35HCOAXKDPYG7YLLEOVFNMSRXQC
RFSCYZWH7VQUGHAM374YUDGZGM5S4KT6NXWDMHXL4767SCRSL2DQC
W5YRNIBZIMTQLOKIBWBF7CHCIOLKXVHV7Y2AIKMKG7GCQSAVZKBAC
BA4YE6QGRTYONATHUP347OFUBUCWXQPNZ6Q5DIQ2DLJLRZJ6AC4AC
LR3QQRO4ZFYYIY4JJ7LJIO4VUK3EWESPIAPLPPIP4W7N75PSVQHQC
EXRAFG37562NH775A4LDPP5FNKXLPLIZSJ3FCOBINUDKRFBJHCXAC
RIKD63GT7RFV3UAV4BYD57GFXKXALWUP6J7AAHB3M6JVAZ3WFTXAC
T64LKJ2RTUDFYSJQI7KF4WHZYXZHNEGNOS7ZMMCRIQZ4YN5LOOMAC
VWTWVVRECX62JABUZYFCTCPWTXXT3DB4635RIAGCKIQMGJ7VXRGAC
}
unsafe fn object_is<E>(e: &ErrorImpl<()>, target: TypeId) -> bool
where
E: 'static,
{
let _ = e;
TypeId::of::<E>() == target
unsafe fn context_is<C, E>(e: &ErrorImpl<()>, target: TypeId) -> bool
where
C: 'static,
E: 'static,
{
let _ = e;
TypeId::of::<C>() == target || TypeId::of::<E>() == target
}
unsafe fn context_chain_is<C>(e: &ErrorImpl<()>, target: TypeId) -> bool
where
C: 'static,
{
if TypeId::of::<C>() == target {
true
} else {
let unerased = e as *const ErrorImpl<()> as *const ErrorImpl<ContextError<C, Error>>;
let source = &(*unerased)._object.error;
(source.inner.vtable.object_is)(&source.inner, target)
}
}