#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(pointer_is_aligned_to, transmutability)] use core::mem::{Assume, TransmuteFrom}; fn main() { let src: &[u8; 2] = &[0xFF, 0xFF]; let maybe_dst: Option<&u16> = if <*const _>::is_aligned_to(src, align_of::()) { Some(unsafe { <_ as TransmuteFrom<_, { Assume::ALIGNMENT }>>::transmute(src) }) } else { None }; assert!(matches!(maybe_dst, Some(& u16::MAX) | None)); }