// Safety:
// this will downcast the other ptr as our swallowed type!
// you *must* make this check *before* calling this method
// if your functions are not the same, then you will downcast a pointer into a different type (UB)
this will downcast the other ptr as our swallowed type.
you *must* make this check *before* calling this method
if your functions are not the same, then you will downcast a pointer into a different type (UB)
this will downcast the other ptr as our swallowed type . you * must * make this check * before * calling this method if your functions are not the same then you will downcast a pointer into a different type ( UB )
unsafe fn memoize(&self, other: &dyn AnyProps) -> bool {
        let real_other: &P = &*(other.as_ptr() as *const _ as *const P);
        let real_us: &P = &*(self.as_ptr() as *const _ as *const P);
        (self.memo)(real_us, real_other)
    }
unsafe fn memoize ( & self , other : & dyn AnyProps ) -> bool { let real_other : & P = & * ( other . as_ptr ( ) as * const _ as * const P ) ; let real_us : & P = & * ( self . as_ptr ( ) as * const _ as * const P ) ; ( self . memo ) ( real_us , real_other ) }
Safety:
this will downcast the other ptr as our swallowed type!
Safety : this will downcast the other ptr as our swallowed type!
&self
other
&dyn AnyProps