#[inline(always)]
pub unsafe fn extend_lifetime<'a, 'b, T>(r: &'a T) -> &'b T {
std::mem::transmute::<&'a T, &'b T>(r)
}
#[inline(always)]
pub unsafe fn extend_lifetime_mut<'a, 'b, T>(r: &'a mut T) -> &'b mut T {
std::mem::transmute::<&'a mut T, &'b mut T>(r)
}